2012-04-12 7 views
0

テキストファイルから読み込んだ後、変数に格納された値でSQLplusに接続しようとしていますが、テーブルを更新しようとしていますが、文字列ここでは定数 は、コードがどのように見えるか、ステップ1 に私を助けるためグイドのおかげで、誰もが誤りを指摘してくださいすることができます。いくつかのエラーがあれば&そうでない部分の内側で、SQLクエリまたは接続がVBスクリプトとSQL Plusを接続してクエリに値を渡す

dim fs, txt, line, yesno , cust_id 
set fs = CreateObject("Scripting.FileSystemObject") 
set txt = fs.OpenTextFile("E:\batchfiletest\Eapp3\scotia1.txt", 1, false) 

' loop through all the lines 
do while not txt.AtEndOfStream 
    line = txt.readLine 

' read the character and store it in a variable 
    yesno = Mid(line, 127, 1) 
    cust_id = Mid(line, 1,20) 

' execute the correct query 
    if yesno = "Y" then 

    set WshShell = CreateObject("WScript.Shell") 
    set oEnv=WshShell.Environment("Process") 
    cmdString = "E:\oracle\product\10.2.0\db_1\BIN\sqlplusw.exe -S sysman/[email protected] 

    UPDATE csa_sli_all.T_CONV_quote set HOLD_CODE = 'CAQ' where quote_id = cust_id ; 
    commit;" 

    Set oExec = WshShell.Exec(cmdString) 

    ELSE 
    set WshShell = CreateObject("WScript.Shell") 
    set oEnv=WshShell.Environment("Process") 
    cmdString = "E:\oracle\product\10.2.0\db_1\BIN\sqlplusw.exe -S sysman/[email protected] 

    UPDATE csa_sli_all.T_CONV_quote set HOLD_CODE = 'PVQ' where quote_id = cust_id ; 
    commit;" 

    Set oExec = WshShell.Exec(cmdString) 

    end if 
loop 
MsgBox "Press OK to close when done reading the output." 
間違っています

答えて

1

これを行うより速くより安全な方法は、

です

エラートラップ、ログなどを追加できます これを使用するPCにOracle OleDbドライバがインストールされていることを確認してください。 Sql * Plusを使用する必要がある場合は、すべてのトランザクションを1つのSQLテキストファイルに書き込んで、1回だけ実行してください。エラーが発生した場合は、SQLを実行してデバッグできます。

グリッツ

関連する問題