2012-04-12 3 views
0

После чтения из текстового файла я пытаюсь подключиться к SQLplus со значением, хранящимся в переменной, и пытаюсь обновить таблицу, но я становлюсь ниже ошибки: «Unterminated Строка константа Вот что код выглядит, благодаря Guido за помощь мне на шаге 1. Может кто-нибудь, пожалуйста, указать на ошибку. Некоторые ошибки в случае, если & Else часть, то SQL-запрос или соединение неправильноПодключение VB Script и SQL Plus, передавая значение Query

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

нормальный более быстрый и безопасный способ сделать это как

Const sConnectionStringOracle = "Provider=OraOLEDB.Oracle;Data Source=xxxx.xxxxx;User id=xxx;password=xxx" 
Set oConn = Server.CreateObject("ADODB.Connection") 
oConn.open sConnectionStringOracle 
sql = "UPDATE csa_sli_all.T_CONV_quote set HOLD_CODE = 'CAQ' where quote_id = " & cust_id 
oConn.execute(sql) 
'rest of the database transactions 
oConn.close 
Set oConn = nothing 

Вы можете добавить ловушку ошибок, ведение журнала и т. Д. Просто убедитесь, что на вашем компьютере установлен драйвер Oracle OleDb, который вы используете. Если вам нужно использовать Sql * Plus, тогда пишите все транзакции в один текстовый файл sql и запускайте его только один раз. Затем вы можете выполнить и отладить sql в случае ошибок.

Grtz

Смежные вопросы