将SQL脚本作为Windows批处理文件运行

时间:2018-09-19 10:03:41

标签: oracle oracle11g oracle-sqldeveloper

我正在使用Oracle 11g,并具有如下所示的Oracle SQL查询(不是SQL +)

spool E:\teST\log.txt

select username,account_status, created, default_tablespace 
from dba_users where username='MMCANE';
spool off

exit;

我打算作为Windows批处理文件运行,为此,我使用以下配置创建了.bat文件

sqlplus *username*/*password*@*database* @E:\teST\Untitled.sql

Untitled.sql 在其中,选择查询正在运行

1。我可以将其作为SQL而不是SQL Plus来运行吗?

运行批处理文件会以文本文件的形式生成所需的输出,但是由于将其作为sqlplus运行,因此会获得未格式化的输出文本文件(请参见下文)

   USERNAME ACCOUNT_STATUS                                                            
---------- --------------------------------  
CREATED    
--------------------------------------------------------------
DEFAULT_TABLESPACE                                                                     
--------------------------------------------------------------------------------
   MMCANE OPEN                                                              
13-SEP-17
USERS

与通过在SQL开发人员本身中运行查询所生成的脚本输出(请参见下文)相反

USERNAME             ACCOUNT_STATUS            CREATED                  DEFAULT_TABLESPACE             
------------------  ----------------------------- ------------------------- ----------------------- 
 MMCANE              OPEN                      13-SEP-17                 USERS  

2。有格式化的方法吗?如果是这样,我应该在哪里发出命令?

我尝试在查询中指定 linesize,wrap 和其他命令,但是由于我已经用Oracle SQL编写了查询,因此无法正常工作。任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

VBA脚本可能是要走的路?

dim cn, rs

set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
cn.connectionString = "Driver={MySQL ODBC 5.1 Driver};Server=yourServerAddress;" & _
                   "Database=yourDataBase;User=yourUsername;" & _
                   "Password=yourPassword;"
cn.open
rs.open "select * from Countries", cn, 3
rs.MoveFirst
while not rs.eof
    wscript.echo rs(0)
    rs.next
wend
cn.close
wscript.echo "End of program"