Windows批处理文件中的SQLPLUS命令行

11

我想创建一个批处理文件,它将打开SQLPLUS [CLI],执行一些存储的SQL文件,并将输出存储到文本文件中。

因此,我已经创建了这个批处理文件[但它不起作用]。
这些SQL文件包含返回表中最大数字的SQL。

sqlplus scott/tiger@DB
@sql1.sql>data1.txt
@sql2.sql>data2.txt

问题在于打开SQLPLUS后无法执行SQL文件

  • Windows XP
  • Oracle 9i
3个回答

13

本地 Sql*plus spooling 怎么样?

run.bat:

sqlplus hr/hr@sandbox @d:\run.sql

run.sql:

spool d:\run.log
set echo on 

select * from dual
/
exit

run.log:

01:50:20 HR@sandbox> 
01:50:20 HR@sandbox> select * from dual
01:50:20   2  /

D
-
X

Elapsed: 00:00:00.00
01:50:21 HR@sandbox> exit

4
SET ORACLE_SID=<YOUR SID HERE>

sqlplus scott/tiger@DB < sql1.sql > data1.txt
sqlplus scott/tiger@DB < sql2.sql > data2.txt

ORACLE_SID。如果您的系统上只有一个实例,则可以跳过此行。 - valex
哎呀,没成功。只启动了SQLPLUS但无法传递参数! - Sourav
data1.txt和data2.txt是用来干什么的? - Prajwal

1

提供信息,以及给社区的其他人,我在dos文件中使用了这个命令行:

sqlplus.exe SIEBEL/mypass@mydb @D:\App\Siebel\EIM\sql\my_sql_command.sql

并且输出结果为:

SQL*Plus: Release 11.2.0.1.0 Production on Mar. Sept. 13 11:53:52 2016

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

ERROR:
ORA-12154: TNS : .....

事实上,我在命令行中出现了一个错误....
sqlplus.exe SIEBEL/mypass@mydb**%** @D:\App\Siebel\EIM\sql\my_sql_command.sql

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接