2011-04-14 71 views
2

我正在尝试开发一个调用SQL * Plus并执行SQL文件的ANT脚本。使用下列内容:当无效的用户名或密码时,SQL * Plus会返回代码

<exec executable="sqlplus" failonerror="true"> 
    <arg value="-LOGON"/> 
    <arg value="scott/${db.pwdapps}"/> 
    <arg value="@${scm.target}/install/sql/XXCUST_COMMON_PKG.pks"/> 
</exec> 

这工作,但如果用户名或密码错误地提供,在SQL * Plus返回成功状态,因此ANT返回相同。

当用户名或密码不正确时,任何人都知道如何使SQLPlus返回错误状态?

回答

2
sqlplus /nolog 
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 14 08:48:07 2011 
Copyright (c) 1982, 2007, Oracle. All Rights Reserved. 
SQL> whenever sqlerror exit failure 
SQL> connect ronr/wrongpwd 
ERROR: 
ORA-01017: invalid username/password; logon denied 
echo $? 
1 

转换脚本使用此文件,或有脚本来完成设置SQLERROR后连接并通过连接信息作为脚本参数。

+0

谢谢加载。我设法解决了这个问题,因为有一个错字,它忽略了“-LOGIN”。怀疑这是问题。你的解决方案看起来也可以工作。 – 2011-04-14 13:01:13

0

USERPSW = ronr/wrongpwd

KEY = '错误'

RETCODE = 0

newobjs = $(SQLPLUS -s < < EOF $ {USERPSW} EOF)

if [[echo $newobjs | grep -ic "$KEY"-gt 0]] then RETCODE = 1 else RETCODE = 0 fi

相关问题