.............
when others then
ps_errors := sqlerrm;
dbms_output.put_line(ps_errors );
END;
when others then
ps_errors := sqlerrm;
dbms_output.put_line(ps_errors );
END;
解决方案 »
- oracle处理数据和java处理数据的比较
- sql 编写
- 通过COM+,DEXPRESS连接oracle,连接之后oracle,session里的username为空
- 存储过程双重循环?
- ORACLE连接问题
- oracle存储过程求教
- 触发器触发自己的问题
- oracle链接sqlserver操作问题?
- spotlight for sqlserver和SQL Expert for SQL server的序列号谁有?
- 有关Oracle Management Server 登录的问题
- 为什么建表报‘ERROR 位于第 1 行:ORA-00922: 缺少或无效选项’
- 安装oracle客户端?非得用软件来装么,可不可以通过copy文件的方式?只要客户端的应用程序可以使用就行了。怎么做?
可以扑获所有异常,用sqlerrm得到错误信息
如果将错误信息保存在表中,则不必考虑什么别的,过后查看记录就可以了。
如果按照:jlandzpa(欧高黎嘉陈)的说法,用dbms_output.put_line(sqlerrm);在sqlplus中运行时,要设环境变量:set serveroutput on后才能看到put_line的结果。
我也给你一个例子:
v_errcode log_tab.code%type;
v_errtext log_tab.message%type;
begin
...
when others then
v_errcode:=sqlcode;
v_errtext:=substr(sqlerrm,1,254);
insert into log_tab(code,message,info)
values(v_errcode,v_errtext,'oracle error occurred');
end;
sqlcode好象不可以使用
另外:DBMS_UTILITY.FORMAT_ERROR_STACK函数也可以返回当前错误信息。
也可以使用OTHERS。