PL/SQL 创建包体时说“插入的值对于列过大”
用scott/tiger登录,创建包和包体,代码如下:
Create Or Replace Package test Is
function f() return number;
End test;
create or replace package body test is
function f() return number
is
begin
return -1;
end;
end test;
包头创建成功,但是在创建包体时,出现如下错误:
ORA-00604: 递归SQL层1出现错误
ORA-01401: 插入的值对于列过大 ORA-06512: 在line 2
------解决方案--------------------
如需要阅读该回复,请登录或注册CSDN!
------解决方案--------------------
如需要阅读该回复,请登录或注册CSDN!
------解决方案-------------------- SQL code
--没有参数的话,去掉括号:
Create Or Replace Package test Is
function f return number;
End test;
create or replace package body test is
function f return number
is
begin
return -1;
end;
end test;
------解决方案--------------------
如需要阅读该回复,请登录或注册CSDN!
------解决方案-------------------- 也有可能LZ删除了递归SQL层(链)上有用的东西。 探讨 我的版本是9i 函数不加括号的事我已经试过了,还是报一样的错误。把以前写过并且编译通过的创建包的脚本拿来运行也报一样的错误。 但是我用 system/manager 登录时一切都是正常的 并且我记得前几天还是可以的,只不过昨天删除了一些表和相关的过程、函数什么的,会不会是这些删除操作时不小心把不该删除的东西给删掉了?
------解决方案-------------------- 如果以前有备份的话,如*.dmp,可以在另一台机中装入Oracle,使用imp导入恢复,仔细比较一下,看能否找出你要的Object。