用shell脚本执行sql,经常会需要写入账号,密码,例如:
cat a.sql
select * from dual;
exit
cat a.sh
sqlplus test/test @a.sql
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:09:37 2017
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
D
-
X
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
如果密码错误,
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:10:50 201
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
从操作系统角度看,这个shell仍然在执行,并没有结束。
如果在密码错误的情况下,继续执行下去,可以加上 "-L"
cat a.sh
sqlplus -L test/test1 @b.sql
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:16:38 2017
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
帮助里对"-L"的解释:
-L Attempts to log on just once, instead of
reprompting on error.
cat a.sql
select * from dual;
exit
cat a.sh
sqlplus test/test @a.sql
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:09:37 2017
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
D
-
X
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
如果密码错误,
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:10:50 201
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
从操作系统角度看,这个shell仍然在执行,并没有结束。
如果在密码错误的情况下,继续执行下去,可以加上 "-L"
cat a.sh
sqlplus -L test/test1 @b.sql
sh a.sh
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 13 15:16:38 2017
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus
帮助里对"-L"的解释:
-L Attempts to log on just once, instead of
reprompting on error.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/37279/viewspace-2135230/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/37279/viewspace-2135230/