Oracleの関数と同じ機能を持つ関数を作成しようとしましたTRANSLATE
。Oracle で関数を作成しましたが、うまく動作しますが、このコードを Firebird に書き直そうとすると問題が発生します。「式の評価はサポートされていません」というエラーが表示されます。なんで?
CREATE FUNCTION TRANSLATEE
(text varchar(10000),
toReplace varchar(10000),
replacePattern varchar(10000)
)
RETURNs VARCHAR(100)
aS
declare variable cut varchar(100);
declare variable i integer;
declare variable position1 varchar(100);
declare variable resultat varchar(100);
declare variable letter varchar(100);
declare variable lenght integer;
BEGIN
i = 1;
resultat ='';
lenght = char_length(:text);
while(i<lenght) do
begin
cut = substring(:text from i for 1);
position1 = position(:toReplace , cut);
if (position(:toReplace , cut) >0) then
begin
letter = substring(:replacePattern from position1 for 1);
resultat = resultat||''||letter;
end
else
begin
resultat = resultat ||''|| cut;
end
i = i+1;
end
RETURN resultat;
END;