Jos*_*ons 46 oracle command-line sqlplus
使用SQL Plus,您可以从命令行使用"@"运算符运行脚本,如下所示:
c:\>sqlplus username/password@databasename @"c:\my_script.sql"
Run Code Online (Sandbox Code Playgroud)
但是,是否可以只运行具有类似语法的单个命令,而无需单独的脚本文件?如:
c:\>sqlplus username/password@databasename @execute some_procedure
Run Code Online (Sandbox Code Playgroud)
我对此感兴趣,因为我想编写一个只执行命令的批处理文件,而不会生成一堆两行".sql"文件.
Pat*_*uff 68
我可以通过将它传递给SQL*Plus来运行SQL查询:
@echo select count(*) from table; | sqlplus username/password@database
Run Code Online (Sandbox Code Playgroud)
给
@echo execute some_procedure | sqlplus username/password@databasename
Run Code Online (Sandbox Code Playgroud)
一试.
Eri*_*lje 15
你尝试过这样的事吗?
sqlplus username/password@database < "EXECUTE some_proc /"
Run Code Online (Sandbox Code Playgroud)
在UNIX中你可以这样做:
sqlplus username/password@database <<EOF
EXECUTE some_proc;
EXIT;
EOF
Run Code Online (Sandbox Code Playgroud)
但我不确定窗户的等价物是什么.
jav*_*e42 10
对于UNIX(AIX):
export ORACLE_HOME=/oracleClient/app/oracle/product/version
export DBUSER=fooUser
export DBPASSWD=fooPW
export DBNAME=fooSchema
echo "select * from someTable;" | $ORACLE_HOME/bin/sqlplus $DBUSER/$DBPASSWD@$DBNAME
Run Code Online (Sandbox Code Playgroud)
sqlplus user/password@sid < sqlfile.sql
Run Code Online (Sandbox Code Playgroud)
这也适用于DOS命令行.在这种情况下,文件sqlfile.sql包含您要执行的SQL.