oracle – 如何验证sqlplus可以连接?
发布时间:2020-12-12 13:08:55 所属栏目:百科 来源:网络整理
导读:我想知道是否有可能以某种方式获取sqlplus输出以发现我的数据库是否已启动. 我想在数据库上运行一个脚本列表,但在此之前,我想知道数据库是否已启动并运行我的脚本. 这是我尝试过的: sqlplus /@DB1 EOF select 1 from dual; EOF 它无法连接,但sqlplus的返回
我想知道是否有可能以某种方式获取sqlplus输出以发现我的数据库是否已启动.
我想在数据库上运行一个脚本列表,但在此之前,我想知道数据库是否已启动并运行我的脚本. 这是我尝试过的: sqlplus /@DB1 << EOF > select 1 from dual; > EOF 它无法连接,但sqlplus的返回码仍然说“一切正常”! SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 28 10:06:41 2016 Copyright (c) 1982,2013,Oracle. All rights reserved. ERROR: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor Enter user-name: SP2-0306: Invalid option. Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]] where ::= [/][@] ::= [][/][@] Enter user-name: ju@srv:/tmp/jcho $echo $? 0 我知道我可以grep我的测试查询的结果,像这样: 灰 sqlplus /@DB1 << EOF select 'ALL_GOOD_BOY' from dual; EOF 呼叫: 如果连接有效,则给出1行,否则为0: $a.sh |grep ALL_GOOD_BOY|wc -l ……这对我来说似乎有很多步骤.在“无法连接”的模式下设置sqlplus的任何其他方式都会给出“错误”返回码? 感谢@Kacper提供的参考,我可以将这个sqlplus / nolog改编为我的案例;这是个主意:>仅在没有连接的情况下打开 灰 sqlplus /nolog << EOF WHENEVER SQLERROR EXIT 50 WHENEVER OSERROR EXIT 66 connect /@${MISTERY_DB} exit; EOF 然后电话: /ju $export MISTERY_DB="eg_NON_EXISTING_DB" /ju $a.sh SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 29 08:43:44 2016 Copyright (c) 1982,Oracle. All rights reserved. SQL> SQL> SQL> ERROR: ORA-12154: TNS:could not resolve the connect identifier specified /ju $echo $? 50 还有关:Connect to sqlplus in a shell script and run SQL scripts (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |