我不知道这段代码中的错误是什么。帮助朋友...... [英] i dono what is the error in this code. help friends...

查看:79
本文介绍了我不知道这段代码中的错误是什么。帮助朋友......的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆