Hallo
,
bezugnehmend auf dieses
Thema habe ich mich gefragt, wie sich das am Besten im Interbase umsetzen ließe.
Ich habe dafür folgende Stored Procedure angelegt:
SQL-Code:
CREATE PROCEDURE REPLACESPECIALCHARS (
INCHAR VARCHAR(9999))
RETURNS (
OUTCHAR VARCHAR(9999))
AS
DECLARE VARIABLE C CHAR(1) CHARACTER SET ISO8859_1;
DECLARE VARIABLE Z INTEGER;
begin
Z=1;
OUTCHAR='';
while (Z<=STRLEN(INCHAR)) do
begin
C=SUBSTR(:INCHAR,Z,Z);
if ((C='ä') or (C='Ä')) then
OUTCHAR=:OUTCHAR||'ae';
else
if ((C='ö') or (C='Ö')) then
OUTCHAR=:OUTCHAR||'oe';
else
if ((C='ü') or (C='Ü')) then
OUTCHAR=:OUTCHAR||'ue';
else
if (C='ß') then
OUTCHAR=:OUTCHAR||'ss';
else
OUTCHAR=:OUTCHAR||LOWER(:C);
Z=Z+1;
end
suspend;
end
Das funktioniert auch. Meine Frage:
Wie könnte ich das ganze als UDF anlegen? Warum?
1. Ich möchte mir gern den ganzen Select-Kram beim Aufruf der Prozedur sparen
2. Ich erhoffe mir davon einen Geschwindigkeitsvorteil
Vielen Dank
René