12703。 00000-“不支持此字符集转换”

问题描述 投票:-1回答:1

我正在使用一个函数来转换货币,但出现此错误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;
/

错误enter image description hereTHE TABLE

enter image description here

oracle plsql stored-functions
1个回答
0
投票

似乎调用将转到另一个convert函数(oracle提供了convert函数)。

Oracle CONVERT()函数将一个字符转换为字符串设置为另一个。

解决方案:

我建议更改您的function的名称,因为convert是oracle函数。

调用时使用schemaname.function。但是不建议使用相同的对象名称,因此选项1更好。

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.