gpt4 book ai didi

oracle - sql语法缺失和错误处理

转载 作者:行者123 更新时间:2023-12-03 08:54:57 24 4
gpt4 key购买 nike

我想处理sql脚本中的错误,为此我做了一些声明。但是它不起作用。我认为我缺少开始和结束声明的位置。
这是我的SQL脚本,请更正它。

set colsep ',';
set trimout off;
set pagesize 0;
set trimspool off;
set feedback off;
set heading off;
set heading off;
set verify off;
set errorlogging on;
var envame varchar2(20)
exec :envame := '&1'
set errorlogging on;
spool C:\UsersDesktop\batch\pres64.csv app
begin
select '&&1', user_name, user_id from employee where designation = 'manager';

exception
when others then
dbms_output.put_line('ERROR');
end;

exit;

这给出了输出
12
13
14
15


请提出修改建议。

最佳答案

spool C:\UsersDesktop\batch\pres64.csv app

begin

select '&&1', user_name, user_id from employee where designation = 'manager';

exception when others then

dbms_output.put_line('ERROR');



您已将 SQL*PlusPL/SQL异常处理混合在一起。 SPOOL是一个SQL * Plus命令。如果使用 BEGIN-END PL/SQL块,它将无法正常工作。

由于您使用的是 SQL*Plus,因此我强烈建议您使用新的 SQL * Plus错误记录功能,而不是在 PL/SQL 中进行操作。它是在 版本11.1 中引入的。

我在这里写了一篇关于它的文章 http://lalitkumarb.wordpress.com/2014/01/21/sqlplus-error-logging-new-feature-release-11-1/

例如,
SQL> set errorlogging on
SQL> show errorlogging
errorlogging is ON TABLE LALIT.SPERRORLOG
SQL> desc sperrorlog
Name Null? Type
----------------------------------------- -------- -----------------------
USERNAME VARCHAR2(256)
TIMESTAMP TIMESTAMP(6)
SCRIPT CLOB
IDENTIFIER VARCHAR2(256)
MESSAGE CLOB
STATEMENT CLOB

SQL> selct * from dual;
SP2-0734: unknown command beginning "selct * fr..." - rest of line ignored.
SQL>

因此,上述 SP2错误现在被 记录在 sperrorlog 表中。
SQL> select timestamp, username, statement, message from sperrorlog;

TIMESTAMP USERNAME STATEMENT MESSAGE
------------------------------ -------- -------------------- --------------------------------------------------
06-APR-15 10.42.49.000000 AM LALIT selct * from dual; SP2-0734: unknown command beginning "selct * fr...
" - rest of line ignored.


SQL>

关于oracle - sql语法缺失和错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com