前段時間在搬遷專案的時候,遇到一個問題,就是用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,就是沒想到過會是一個空字元。
當時也是沒想到一個空字元,就把我卡了一個下午,這個坑應該是不會再踩了。