我正在使用一个函数来转换货币,但出现此错误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;
/
答案 0 :(得分:1)
似乎调用将转到其他 public async startDB(): Promise<any> {
console.log('starting database...')
try {
await createConnection();
console.log('database started...')
this.startServer();
} catch (error) {
console.log(`Server can't start. Error: ${error}`)
return Promise.reject('Restart server');
}
}
函数(oracle提供了convert函数)。
Oracle
version: "3.3" services: db: build: ./server/db restart: always environment: - "MYSQL_DATABASE=development_db" - "MYSQL_ROOT_PASSWORD=password" - "MYSQL_PASSWORD=password" ports: - 3306:3306 networks: - app_network server: depends_on: - "db" # this is important for sql connection. it has to wait for mysql to establish connection then run this bish build: ./server command: ["npm", "start"] restart: always ports: - "3000:3000" environment: - DATABASE_PASSWORD=password - DATABASE_HOST=db volumes: - type: bind source: ./server target: /server # this name is from dockerfile workdir networks: - app_network networks: app_network: volumes: app_volume:
函数将一个字符转换为字符串 设置为另一个。
解决方案:
我建议您更改convert
的名称,因为CONVERT()
是oracle函数。
或
在调用function
时使用它。但是不建议使用相同的对象名称,因此选项1更好。
干杯!