簡體   English   中英

如何使用PowerShell或VBScript將數據插入Postgres表中?

[英]How do I insert data into a Postgres table using PowerShell or VBScript?

我需要定期查詢少數服務器上的事件日志,並將特定事件插入Postgres表中。

我在弄清楚如何使用PowerShell和/或VBScript通過ODBC將數據插入表中時遇到麻煩。 我通常對VBScript和PowerShell都相當熟悉,並且我可以編寫一條有效的SQL UPDATE語句,我只是想將兩者結合在一起,這是我以前從未做過的。

我已經安裝了Postgres ODBC驅動程序,已經配置了測試OK的數據源。

Google到目前為止還沒有幫助我,有人可以提供一些建議嗎?

您遇到什么問題? 你有多遠? 您的連接是否打開? 您知道連接字符串的語法嗎?

准備連接:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open dsn, dbuser, dbpass

插入:

insert = "insert into table (col1, col2) values (12, 'Example Record')"
conn.Execute insert
If conn.errors.Count > 0 Then
    Dim counter
    WScript.echo "Error during insert"
    For counter = 0 To conn.errors.Count
        WScript.echo "Error #" & DataConn.errors(counter).Number
        WScript.echo "  Description(" & DataConn.errors(counter).Description & ")"
    Next
Else
    WScript.echo "insert: ok"
End If

為了完整性,請查詢:

query = "select * from table where col1 = 7"
Set recordSet = conn.execute(query)
' result is an object of type ADODB.RecordSet

如果您需要Powershell,請嘗試這篇文章
如果您需要知道連接字符串,請嘗試connectionstrings.com

感謝您的回復。

我使用了更多谷歌搜索功能,最終搜集了足夠的ADO.NET使其運行,盡管它不一定是“正確的”。

$DBConnectionString = "Driver={PostgreSQL UNICODE};Server=$DBIP;Port=$DBPort;Database=$DBName;Uid=$DBUser;Pwd=$DBPass;"

$DBConn = New-Object System.Data.Odbc.OdbcConnection
$DBConn.ConnectionString = $DBConnectionString

$DBCmd = $DBConn.CreateCommand()

[void]$DBCmd.Parameters.Add("@TimeStamp", [System.Data.Odbc.OdbcType]::varchar, 26)
[void]$DBCmd.Parameters.Add("@ErrorText", [System.Data.Odbc.OdbcType]::varchar, 4000)

$DBCmd.CommandText = "INSERT INTO errorinfo (errortime,xml) VALUES(?,?)"

$DBCmd.Connection.Open()

$DBCmd.Parameters["@TimeStamp"].Value = $TimeStamp.ToString("yyyy-MM-dd HH:mm:ss")
$DBCmd.Parameters["@ErrorText"].Value = $ErrorText

[void]$DBCmd.ExecuteNonQuery()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM