oracle 如何自动化sqlplus

xdnvmnnf  于 2023-03-17  发布在  Oracle
关注(0)|答案(2)|浏览(118)

其他帖子已经表明,基本上可以将sqlplus与

echo 'select 1 from dual;' 'exit' | sqlplus -S "christian/$password@sredb1_high"

但是当我这样做的时候,我没有得到任何结果。与终端的交互直接得到了我想要的。我可能会错过什么呢?理想情况下,我还希望去掉头和任何多余的无用信息,因为我打算下游处理结果

cbongior@cbongior-mac perspective % sqlplus -S "christian/$password@sredb1_high"                                 
select count(*) from christian.MY_TABLE;

  COUNT(*)
----------
       500

^C^C^D
cbongior@cbongior-mac perspective % echo 'select count(*) from christian.MY_TABLE;' 'exit' | sqlplus -S "christian/$password@sredb1_high"
cbongior@cbongior-mac perspective %
mnowg1ta

mnowg1ta1#

你可以这样做:

$ row_count=$( sqlplus -s "christian/$password@sredb1_high" <<END_SQL
SET HEADING OFF FEEDBACK OFF NEWPAGE NONE VERIFY OFF 
select count(*) from christian.MY_TABLE;
END_SQL
)
$ echo $row_count
500
ecfdbz9o

ecfdbz9o2#

如果您需要一行程序,可以这样做

[oracle@xxxxx~]$ echo -e "select * from dual;\nexit" |sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Beta on Thu Mar 16 16:33:45 2023
Version 23.1.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to:
Oracle Database 23c Enterprise Edition Release 23.0.0.0.0 - Beta
Version 23.1.0.0.0

SQL>
D
-
X

SQL> Disconnected from Oracle Database 23c Enterprise Edition Release 23.0.0.0.0 - Beta
Version 23.1.0.0.0

相关问题