我在script.sql檔案中撰寫了 SQL 腳本來創建程序。該script.sql檔案位于應用程式路徑中。
現在我已經用 C# 撰寫了一個創建資料庫連接的工具。我想通過此連接運行帶有代碼的腳本檔案。那可能嗎?
private OracleConnection oraCon = new OracleConnection();
...
// ORACLE VERBINDUNG
try
{
if (oraCon.State != ConnectionState.Open)
{
oraCon.ConnectionString = "Data Source=" tboServername.Text "/"
tboDatenbank.Text ";User Id=" tboLogin.Text ";Password=" tboPasswort.Text;
oraCon.Open();
}
}
catch (Exception ex)
{
Errorlog(ex.ToString());
}
我可以將script.sql直接轉移到 OraCon 連接嗎?或者也許有另一種方式?
uj5u.com熱心網友回復:
您可以,但可能不是直接的 - 請記住,oraclecommand 中不允許使用不同陳述句(例如 ; 或 /)之間的分隔符,因此如果您的腳本有多個陳述句由某些東西分隔,那么腳本應該在那個東西和每個陳述句上分開內分別運行。如果您的腳本創建了存盤程序,因此 hs 分號因為它們是存盤程序的一部分,您可以將整個腳本包裝起來'并立即執行它
基本上,如果您有一些腳本檔案,例如
CREATE PROCEDURE BLAH .. semicolons blah..
/
CREATE PROCEDURE BLAH2 .. semicolons blah..
你正在尋找這樣的東西:
var statements = File.ReadAllText(path).Split("\n/");
foreach(var statement in statements)
new OracleCommand($"EXECUTE IMMEDIATE '{statement}'", connection).ExecuteNonQuery();
您也許還可以選擇只要求 sqlplus 命令列工具運行您的腳本
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360989.html
