Sqlsugar呼叫Oracle的儲存過程

BearHan發表於2024-11-08

前段時間在搬遷專案的時候,遇到一個問題,就是用sqlsugar呼叫oracle的儲存過程的時候呼叫不了;

當時卡了一整天,現在有空了把這個問題記錄分享一下。

先去nuget上安裝一下sqlsugar的包:

再安裝一個oracle的驅動:

新增一下Json包:

再去建立一下連線

再建立一個測試用的儲存過程

create or replace procedure pr_test(i_name   in varchar2,
                                    i_age    in varchar2,
                                    o_result out sys_refcursor) as

begin

  open o_result for
    select * from dual;

end pr_test;

建立一個類來接受儲存過程返回的資料

    public class People
    {
        public string Dummy { get; set; }
    }

單獨把儲存過程裡面的那句sql拿出來執行,會得到下面的結果:

dual這個表是oracle提供的一個表,裡面就一個X,一般可以用這個來測試資料庫連線是不是正常。

呼叫的方式如下:

裡面那個遊標的入參必須是個空字元,我之前嘗試過object,null,就是沒想到過會是一個空字元。

當時也是沒想到一個空字元,就把我卡了一個下午,這個坑應該是不會再踩了。

相關文章