【发布时间】:2016-12-18 06:51:32
【问题描述】:
我正在尝试使用存储过程获取对表的依赖关系。对于我的 sp,我将模式名称和表名称作为输入,将与约束相关的变量作为输出。我还添加了一个游标来返回多行。
我的 sp 运行良好,但是当我尝试执行存储过程时,它给出了错误提示:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.TEST", line 23
ORA-06512: at line 10
06502. 00000 - "PL/SQL: numeric or value error%s"
这是我尝试执行存储过程的方式: -- 试图执行存储过程
Set serveroutput on
declare
V_constraintname varchar2(20);
V_rowner varchar2(20);
V_rconstraintname varchar2(20);
V_columnname varchar2(20);
V_tabname varchar2(20);
V_refcsr SYS_REFCURSOR;
begin
dbms_output.enable;
Test('ABC','XYZ',V_constraintname,V_rowner,V_rconstraintname,V_columnname,V_tabname,V_refcsr);
dbms_output.put_line(V_constraintname) ;
dbms_output.put_line(V_rowner) ;
dbms_output.put_line(V_rconstraintname) ;
dbms_output.put_line(V_columnname) ;
dbms_output.put_line(V_tabname) ;
--dbms_output.put_line(V_refcsr) ;
end;
/
前 2 个值是输入,其余是存储过程的 in out 参数。
【问题讨论】:
-
将
test的全部内容连同上述内容一起发布会很有帮助。还有完整的错误(可能有一个有用的发生错误的行号)。 -
我想由于程序编译没有错误,您认为问题在于您如何调用它。不是这样。该过程可能编译得很好,但是如果在运行时你给它一个数值,它需要一个日期,或者你给它一个字符串'abc',它需要一个数字,它会抛出你看到的运行时错误。错误出现在 sp 的代码中,而不是你如何调用它。正如彼得所说,请分享您的 sp 代码 - 否则我们无能为力。
-
请不要在
SYS架构(或任何其他内置架构)中创建任何内容。
标签: oracle function stored-procedures plsqldeveloper