最近我不得不写一个oracle函数,错误ora-06575经常出现。通常是因为赋值中缺少冒号,例如:z=5 (vs. z := 5)或语句末尾缺少';‘。
无论如何,我能够创建函数,但它在执行过程中失败了,并出现了该错误,并且没有给出任何关于问题所在的提示(除了它在函数中)。
我用MSSQL和Sybase编写了相同的函数,这两个函数实际上都试图指出任何错误的位置。所以我想我在Oracle中做错了什么-它不能只告诉我‘有一个错误’。
在oracle中,我有这样一条语句:
CREATE OR REPLACE
FUNCTION...
我在SQL developer中编译该函数,方法是选择该函数,然后按F9。当我选择一个执行函数的语句并按下F9时,我得到ora-06575错误。
如果我按F5编译函数,它会告诉我:
ORA-24344: success with compilation error
Compiled.
所以我找到了这个网站:http://www.dba-oracle.com/t_ora_24344_success_with_compilation_error.htm,但我似乎不能运行'show error‘。当我运行它时,我看不到任何输出。
这只能在sqlplus中运行吗?我正在使用SQL developer,我更喜欢坚持使用SQL developer。我是不是漏掉了什么?我希望它能告诉我错误在哪里。
发布于 2012-03-20 14:24:39
SHOW ERRORS
是一个sql*plus命令。
您还可以查询USER_ERRORS
视图
SELECT line, position, text
FROM user_errors
WHERE name = '<<your_object_name>>'
发布于 2012-03-20 15:33:05
SHOW ERRORS
在SQL*Developer中也可以工作(至少在我最近使用的版本中,当然是3.1版本)。您在评论中提到您是以SYS身份连接的,所以我真的希望您是在另一个模式中显式地创建您的函数--我无论如何都会避免这样做,以防您有一天忘记了,并修改了任何预先构建的模式(SYS、SYSTEM等)。不是个好主意。如果是这样的话,您还需要在出错的对象前面加上模式:
create or replace function my_schema.x return number is
begin
return sysdate;
end;
/
show errors my_schema.x
当作为脚本运行(F5)时,它会显示:
FUNCTION X compiled
Warning: execution completed with warning
3/8 PLS-00382: expression is of wrong type
3/1 PL/SQL: Statement ignored
输出的前两行来自函数编译,后两行来自show errors
。您还可以使用F9分别运行这两个语句,以查看相同的结果。
但我不确定您是如何获得ORA-24344
的,所以可能您使用的是较早的版本;这可能不起作用。A.B.Cade的解决方案将适用于您的客户。
https://stackoverflow.com/questions/9788556
复制相似问题