我想赶可能发生,所以我在KSH写这篇任何SQL错误退出sqlplus中:如何当错误发生
$ORACLE_HOME/bin/sqlplus -s u/p <<EOF
WHENEVER OSERROR EXIT 68;
WHENEVER SQLERROR EXIT SQL.SQLCODE;
CREATE TABLE new_table
AS (SELECT * FROM wrong_old_table);
COMMIT;
EOF
我把一个错误的名称为旧表,看看会发生什么。我希望有只喜欢我在WHENEVER SQLERROR问SQLCODE但我有这样的:
AS (SELECT * FROM wrong_old_table)
*
ERROR at line 2:
ORA-00942: table or view does not exist
我改变了代码:
$ORACLE_HOME/bin/sqlplus -s u/p <<EOF
WHENEVER OSERROR EXIT 68;
WHENEVER SQLERROR EXIT SQL.SQLCODE;
BEGIN
CREATE TABLE new_table
AS (SELECT * FROM wrong_old_table);
COMMIT;
END;
EOF
sql_code=$?
echo "code=$sql_code"
即使有错误,代码等于0哪里是SQL错误代码?
事实上,没有用的......开始结束和它的作品
你在使用什么操作系统和shell? –