經過多年的嘗試,我設法通過 PowerShell 連接到 PostgreSQL 資料庫。
但現在我還有 1 個問題:
我的目標是創建一個執行我的 SQL 腳本的 Powershell 腳本。例如,如何在存盤在 c:\scripts 中的 Powershell 中運行我的 sql 腳本?
這是我當前的源代碼:
...
$DBConnectionString = "Driver={PostgreSQL ODBC Driver(UNICODE)};Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;"
$DBConn = New-Object System.Data.Odbc.OdbcConnection;
$DBConn.ConnectionString = $DBConnectionString;
$DBConn.Open();
$DBCmd = $DBConn.CreateCommand();
$DBCmd.CommandText = "CREATE TABLE accounts (
user_id serial PRIMARY KEY,
username VARCHAR ( 50 ) UNIQUE NOT NULL,
password VARCHAR ( 50 ) NOT NULL,
email VARCHAR ( 255 ) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);";
$DBCmd.ExecuteReader();
$DBConn.Close();
更新 1:
...
$DBConnectionString = "Driver={PostgreSQL ODBC Driver(UNICODE)};Server=$MyServer;Port=$MyPort;Database=$MyDB;Uid=$MyUid;Pwd=$MyPass;"
$DBConn = New-Object System.Data.Odbc.OdbcConnection;
$DBConn.ConnectionString = $DBConnectionString;
$DBConn.Open();
$DBCmd = $DBConn.CreateCommand();
/*
Here I want to go to a folder where all my SQL files are and I want to run an SQL file
*/
);";
$DBCmd.ExecuteReader();
$DBConn.Close();
uj5u.com熱心網友回復:
也許您正在尋找類似的東西:
# ...
Get-ChildItem C:\Scripts -Filter *.psql | ForEach-Object {
# Execute the content of each file as its own command.
$DBCmd.CommandText = $_ | Get-Content -Raw
$DBCmd.ExecuteReader();
}
# ...
如果要合并所有*.psql檔案的內容并將其作為單個命令提交:
# ...
# Execute the merged content of all script files as a single command.
$DBCmd.CommandText = (Get-Content -Raw C:\Scripts\*.psql) -join "`n"
$DBCmd.ExecuteReader();
# ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408989.html
標籤:
上一篇:使用日期列的周數磁區DB
