簡體   English   中英

從.NET執行Oracle存儲過程

[英]Execute Oracle stored procedure from .NET

我正在嘗試運行此C#代碼

string sql = @"EXECUTE GETEMPLOYEES1()";

OracleCommand cmd = new OracleCommand(sql, cnn);
cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

但我不斷

無效的SQL錯誤

我的存儲過程代碼很簡單

CREATE OR REPLACE PROCEDURE GETEMPLOYEES1 
AS 
BEGIN
    DBMS_OUTPUT.PUT_LINE('Welcome to FYICenter!'); 
END;  

我可以使用CommandType = StoredProcedure正常運行它,但是我需要執行用戶輸入的一些動態代碼,而對我來說至關重要的是通過CommandType = Text來執行。

EXECUTE是一個SQL * Plus命令。 使用任一

CALL GETEMPLOYEES1()

要么

BEGIN GETEMPLOYEES1(); END;

同樣,如果您選擇命令類型StoredProcedure,則庫將添加BEGIN ... END; 內部為您服務。

當過程為無參數時, CALL還需要用括號括起來。

嘗試替換DBMS_OUTPUT.PUT_LINE('Welcome to FYICenter!'); null; ,看看是否有什么不同。 我假設在連接上下文中沒有嘗試輸出文本的感覺,也沒有控制台。

暫無
暫無

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

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