我估计是oracle内部类型转换的问题这样可以
11:32:36 SQL> select to_char( rawtohex('aaaa')) from dual;TO_CHAR(
--------
61616161但这样就不行了
11:32:22 SQL> declare
11:32:35 2 a varchar2(100);
11:32:35 3 begin
11:32:35 4 a:=to_char( rawtohex('aaaa'));
11:32:35 5 dbms_output.put_line(a);
11:32:35 6 end;
11:32:35 7 /
declare
*
ERROR 位于第1行:
ORA-06550: 第 4 行, 第 4 列:
PLS-00307: 有太多的 'TO_CHAR' 说明与此次调用相匹配
ORA-06550: 第 4 行, 第 1 列:
PL/SQL: Statement ignored
11:32:36 SQL> select to_char( rawtohex('aaaa')) from dual;TO_CHAR(
--------
61616161但这样就不行了
11:32:22 SQL> declare
11:32:35 2 a varchar2(100);
11:32:35 3 begin
11:32:35 4 a:=to_char( rawtohex('aaaa'));
11:32:35 5 dbms_output.put_line(a);
11:32:35 6 end;
11:32:35 7 /
declare
*
ERROR 位于第1行:
ORA-06550: 第 4 行, 第 4 列:
PLS-00307: 有太多的 'TO_CHAR' 说明与此次调用相匹配
ORA-06550: 第 4 行, 第 1 列:
PL/SQL: Statement ignored
初级会员
注册日期: 2002 Aug
来自: hell
发帖数量: 6来自ORACLE的回答:RAWTOHEX is a SQL function, as opposed to a PL/SQL function, and must be used in a SQL statement. SQL has no concept of an assignment opperator, :=. So change
l_strng := RAWTOHEX........
to
SELECT RAWTOHEX(p_string) INTO l_string FROM dual;
以前我就发现developer2000的sysdate和lpad/rpad函数与对应的数据库函数不同,那还可以解释为developer是在前端运行,数据库函数在服务器运行所以结果不同,现在rawtohex同在服务器运行都不一样,真是没法活了