我正在使用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;
Run Code Online (Sandbox Code Playgroud)
最后显示的错误也没有显示警告.为什么会有警告?
错误!
首先,你应该关心错误,我敢打赌你的函数的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
Run Code Online (Sandbox Code Playgroud)
检查:
select plsql_warnings
from user_plsql_object_settings ps
where ps.name = 'WAFADAR'
Run Code Online (Sandbox Code Playgroud)
你的警告:
客户端工具,如sql*plus或Sql Developer(如果支持):
show errors
Run Code Online (Sandbox Code Playgroud)
要么
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
Run Code Online (Sandbox Code Playgroud)
最后,我建议你阅读一下: