【发布时间】:2017-05-08 10:41:18
【问题描述】:
我的测试函数是这个
CREATE OR REPLACE FUNCTION MULTI_VAL
(MYNAME OUT EMP2017.ENAME%TYPE)
RETURN NUMBER AS
MYSAL EMP2017.SAL%TYPE;
BEGIN
SELECT SAL, ENAME INTO MYSAL, MYNAME FROM EMP2017 ;
RETURN MYSAL;
END;
/
当我像运行它时
variable mynm varchar2(20)
SELECT MULTI_VAL(:mynm) FROM dual;
它给出了这个错误
第 1 行出现错误:
ORA-06553: PLS-561: 参数 'MYNAME' 值的字符集不匹配
【问题讨论】:
-
那么
EMP2017.MYNAME的数据类型是什么? -
假设是
nvarchar2(20),你的数据库和国家字符集是什么?此外,我希望该查询获得ORA-06572: Function MULTI_VAL has out arguments,并且由于该函数的查询没有过滤器,因此如果表中没有一行,它将出错。你真正想做什么?也许你想返回一个引用游标或一个流水线集合?