1

Microsoft VBScript を介して Oracle SQL ステートメントまたは Oracle 関数を実行し、結果セットをループ処理するか、関数によって返された値を表示しようとしています。

これまでのところ、SQLPlus* 経由で Oracle に接続できましたが、今は行き詰っています。誰でも助けることができますか?


Dim output

Dim WshShell, oExec, input 

set WshShell = CreateObject("WScript.Shell")

set oEnv=WshShell.Environment("Process") 

cmdString = "C:\Oracle\11g\product\11.1.0\ruby\BIN\sqlplus.exe -S stradmin/stradmin@ruby select * from dual"
Set oExec = WshShell.Exec(cmdString) 


WScript.Echo "Status" & oExec.Status


Do While oExec.Status = 0 

     WScript.Sleep 2 

Loop 



input = "" 



Do While Not oExec.StdOut.AtEndOfStream 

          input = input & oExec.StdOut.Read(1) 

Loop 



wscript.echo input 
4

1 に答える 1

3

これを試して、レコードセットの各フィールドを入力文字列に追加する必要があります。各レコードから特定の値のみが必要な場合は、これを行うことができます

input = input & rs.Fields.Item("FIeld_Name")

各フィールドをループする代わりに。

connectionString = "DRIVER={Microsoft ODBC for Oracle};SERVER=oracle_server;User Id=user;Password=password;"

Set connection = CreateObject("ADODB.Connection")

connection.Open connectionString
Set rs = connection.Execute("select * from dual")

input = ""

Do Until rs.EOF
    for i = 0  To rs.Fields.Count - 1
        input = input & rs.Fields.Item(i) & "|"
    Next
    input = input & VBNewLine
    rs.MoveNext
Loop

MsgBox input

Set connection = Nothing
Set rs = Nothing
于 2009-07-09T15:35:08.340 に答える