通过Jenkins管道,如果我出错了 ORA-01940: cannot drop a user that is currently connected
,我想执行一些操作。
为了测试我应该得到这个信息。如果我创建一个用户并用它登录到sqldeveloper,然后尝试通过管道将其删除,则会导致上述错误-
sh '''
sqlplus -s /nolog <<-EOF
connect system/system@orcl
DROP USER TEST_USER;
exit
EOF
'''
有没有什么方法我可以连接使用该用户,并通过管道,使其结果进入上述错误?
1条答案
按热度按时间brccelvz1#
如果您使用shell脚本通过jenkins中的管道运行该部分,则有以下几种选择:
获取操作的特定返回代码
在这种情况下,您可以执行以下操作
如果出现错误,此操作将返回99。必须使用
$?
例子会话1(作为系统)
我与用户测试连接,然后与系统用户连接,我将尝试删除它
使用plsql块返回代码或消息
但是,如果您想要与之前的选项不同的东西,比如让代码自动显示而不进行求值,那么您可以通过使用匿名pl/sql块的输出来获得消息显示。
在你的情况下,我会用这样的方法:
我评论道
verror := sqlcode
在前面的部分中显示整个消息。在linux中运行的一个例子是:请注意,此pl/sql块结束时是正常的。我的意思是,从操作系统的Angular 来看,操作返回码是0。如果要将其作为错误,则需要引发错误,但在这种情况下,消息会有所不同。