我不知道这段代码中的错误是什么。帮助朋友...... [英] i dono what is the error in this code. help friends...
问题描述
SQL>创建类型t_oracle_error是对象(
2
3 error_num varchar2(9),
4
5 error_desc varchar2 (1024)
6
7);
8
9
10 create type t_oracle_error_tab是t_oracle_error表;
11
12
13创建或替换函数OracleErrors返回t_oracle_error_tab pipel
14
15 l_error t_oracle_error:= t_oracle_error(null,null);
16
17开始
18
19 for errNo in reverse -32799..0 loop
20
21 l_error.error_num:= errNo;
22
23 l_error.error_desc:= sqlerrm(errNo);
24
25如果l_error.error_desc不喜欢'%Message%找不到;%'和l_error
RA'|| to_char(错误,'FM09999')||':'然后
26
27管排(l_error);
28
29结束i f;
30
31结束循环;
32
33返回;
34
35结束OracleErrors; /
36 /
警告:使用编译错误创建类型。
SQL>显示错误
类型T_ORACLE_ERROR的错误:
LINE / COL错误
------- - ------------------------------------------------- ----------------
10/1 PLS-00103:遇到符号CREATE
SQL> create type t_oracle_error is object (
2
3 error_num varchar2(9),
4
5 error_desc varchar2(1024)
6
7 );
8
9
10 create type t_oracle_error_tab is table of t_oracle_error;
11
12
13 create or replace function OracleErrors return t_oracle_error_tab pipel
14
15 l_error t_oracle_error := t_oracle_error(null,null);
16
17 begin
18
19 for errNo in reverse -32799..0 loop
20
21 l_error.error_num := errNo;
22
23 l_error.error_desc := sqlerrm(errNo);
24
25 if l_error.error_desc not like '%Message % not found;%' and l_error
RA'||to_char(errNo,'FM09999')||': ' then
26
27 pipe row(l_error);
28
29 end if;
30
31 end loop;
32
33 return;
34
35 end OracleErrors;/
36 /
Warning: Type created with compilation errors.
SQL> show error
Errors for TYPE T_ORACLE_ERROR:
LINE/COL ERROR
-------- -----------------------------------------------------------------
10/1 PLS-00103: Encountered the symbol "CREATE"
推荐答案
create type t_oracle_error is object (
error_num varchar2(9),
error_desc varchar2(1024)
);
create type t_oracle_error_tab is table of t_oracle_error;
create or replace function OracleErrors return t_oracle_error_tab pipel
l_error t_oracle_error := t_oracle_error(null,null);
begin
for errNo in reverse -32799..0 loop
l_error.error_num := errNo;
l_error.error_desc := sqlerrm(errNo);
if l_error.error_desc not like '%Message % not found;%' and l_error ' ||to_char(errNo,''FM09999'')||: ' then
pipe row(l_error);
end if;
end loop;
return;
end OracleErrors;/
/
如果有帮助,请标记为答案:)
Please mark as answer if it helps you :)
这篇关于我不知道这段代码中的错误是什么。帮助朋友......的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!