我正在使用Oracle 10g和SqlDeveloper。当我执行以下代码时,它说
“功能wafadar编译 警告:执行完成并发出警告“
create or replace function wafadar
return varchar2(10)
is
cursor c1 is
SELECT employee_id,first_name FROM employees where department_id=50 ;
begin
for i in c1
loop
dbms_output.put_line(i.first_name);
end loop;
return 'hello';
end;
最后显示的错误也没有显示警告。为什么会有警告?
答案 0 :(得分:8)
<强>错误!强>
首先,你应该关心错误,我打赌你的函数的return子句中有一个(你不能指定 varchar2 的大小 >”
<强>警告强>
您是否在手册中寻找“警告”? http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17126/errors.htm#LNPLS00711
如何查看警告(启用您需要的类别)
alter function wafadar compile plsql_warnings='ENABLE:ALL' reuse settings
检查强>:
select plsql_warnings
from user_plsql_object_settings ps
where ps.name = 'WAFADAR'
您的警告:
客户端工具,如sql * plus或Sql Developer(如果支持):
show errors
或
select *
from user_errors ur
where ur.name = 'WAFADAR'
NAME TYPE SEQUENCE LINE POSITION TEXT ATTRIBUTE MESSAGE_NUMBER
------------------------------ ------------ ---------- ---------- ---------- -------------------------------------------------------------------------------- --------- --------------
WAFADAR FUNCTION 1 1 1 PLW-05018: unit WAFADAR omitted optional AUTHID clause; default value DEFINER us WARNING 5018
最后,我建议你阅读一下: