我正在使用一个函数来转换货币,但出现此错误12703。00000-“不支持此字符集转换,我不知道为什么。
这是我正在使用的代码
CREATE OR REPLACE FUNCTION convert(r_comm IN commande.ref_commande%type,
devise IN VARCHAR2)
RETURN commande.montant_ttc%type IS
mt commande.montant_ttc%type;
montant NUMBER(20) :=0;
BEGIN
IF devise = 'dollar' THEN
SELECT montant_ttc INTO mt FROM commande WHERE ref_commande = r_comm;
montant := mt*10;
END IF;
IF devise = 'euro' THEN
SELECT montant_ttc INTO mt FROM commande WHERE ref_commande = r_comm;
montant := mt*11;
END IF;
RETURN montant;
END convert;
/
DECLARE
r_comm commande.ref_commande%type :=1;
devise VARCHAR2(6) := 'dollar';
mt NUMBER(20);
BEGIN
mt := convert(r_comm, devise);
dbms_output.put_line(mt);
END;
/
似乎调用将转到另一个convert
函数(oracle提供了convert函数)。
Oracle
CONVERT()
函数将一个字符转换为字符串设置为另一个。
解决方案:
我建议更改您的function
的名称,因为convert
是oracle函数。
或
调用时使用schemaname.function
。但是不建议使用相同的对象名称,因此选项1更好。
干杯!