2016-10-03 37 views
2

毎日実行する一部のスクリプトに対して、ユーザー名とパスワードを使用して1つのファイルを取得しようとしています。ユーザー名とパスワードを持つバッチファイルを使用して、いくつかのスクリプトが動作しています。バッチファイルからsqlplusスクリプトにパラメータを渡す

パスワードバッチファイルは次のようになります。

Rem Oracle Db 
set odbUsername=myUserName 
set odbpassword=myPassword 

parms.bat私の他のスクリプトは、そのバッチファイルを呼び出し、[OK]の情報を取得します。私はまた、これらのユーザー名とパスワードを使用する必要があるカップルのSQLスクリプトがあります。私はそれらを働かせるように見えない。しかし、私はsqlplusスクリプティングについてはかなり新しいです。

私のSQLスクリプトはこのように見えます。

CONNECT [email protected]/mypassword 

SET FEEDBACK OFF; 
SET ECHO OFF; 
SET TERMOUT OFF; 
SET HEADING OFF; 
SET PAGESIZE 0; 
SET LINESIZE 500; 
SET TIMING OFF; 
SET TRIMSPOOL ON; 
SET COLSEP ','; 

SPOOL C:\FileTransfers\MeterData.csv 

PROMPT CoopCode,MeterID,DateTime,Value 
SELECT DISTINCT 
      a.coopcode 
     || ',' 
     || a.meterno 
     || ',' 
     || a.readdatetime 
     || ',' 
     || a.usage 
    FROM temp_reconfigured a, temp_goodsence b 
WHERE a.coopcode = b.coopcode AND a.meterno = b.meterno 
; 

Spool off; 

EXIT; 

私はWindowsタスクスケジューラを介して実行されるバッチファイルでこのスクリプトを呼び出します。

このようになります。

sqlplus /nolog  @C:\FileTransfers\AutomationScripts\GoodSence\SpoolGoodSenceDataSet.sql 

バッチファイルからsqlにユーザー名を渡したいと思います。私はいくつかのことを読んで約30回試してみると、どれもうまくいかないようです。事前にあなたの助けをありがとう。

答えて

1

あなたは、このようパラメータを渡すことができます。

script.sql:

select '&1' from dual; 

コール:

D:\>sqlplus user/[email protected] @d:\script.sql 'value' 

SQL*Plus: Release 11.2.0.2.0 Production on Lun Ott 3 17:02:10 2016 

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


Connected to: 
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production 

old 1: select '&1' from dual 
new 1: select 'value' from dual 

'VALU 
----- 
value 
0

ちょうど私が通過について考えたことを入力しますそれは呼び出し中に対SQLの中に接続する。私はその後、私のSQLを編集し、だから、これは働いていた

を接続ステートメントを取り出した...

echo Get Parameters 
call C:\FileTransfers\AutomationScripts\parms.bat 
echo %odbUsername% 
echo %odbpassword% 

sqlplus [email protected]/%odbpassword%@C:\FileTransfers\AutomationScripts\GoodSence\SpoolGoodSenceDataSet.sql 
関連する問題