今天想在程序拼接好執行修改語句(添加、更新、刪除),調用數據庫存儲過程執行
首先,我們來編寫這個存儲過程
/* * 執行存儲過程 * 輸入參數:執行SQL * 輸出參數:返回受影響行數 */ create or replace procedure Proc_ExecSql ( --定義輸入、輸出參數-- strSql in varchar, strCount out integer ) as --定義變量-- begin --執行動態SQL execute immediate strSql; --返回受影響行數 strCount:=sql%rowcount; dbms_output.put_line('執行返回結果:'||strCount ); commit; end;
調用存儲過程實例:

調用存儲過程方法(公司內部)
/// <summary> /// 執行存儲過程 /// </summary> /// <param name="rkDb">數據庫連接</param> /// <param name="procName">存儲過程名稱</param> /// <param name="execSql">執行Sql語句</param> /// <returns></returns> public int ExecSqlByProceducre(IDbContext rkDb,string procName,string execSql) { //創建存儲過程對象 IStoredProcedureBuilder sb = rkDb.StoredProcedure(procName); //添加參數到對象中 sb.Parameter("STRSQL", execSql, DataTypes.String); //輸入參數 sb.ParameterOut("STRCOUNT", DataTypes.Int32); //輸出參數 //執行存儲過程 sb.Execute(); //獲取存儲過程中輸出參數的值 return (int)sb.ParameterValue<dynamic>("STRCOUNT"); }
調用執行前

調用執行測試
declare strCount integer; begin --調用存儲過程(名稱:一次性使用葯液轉移過濾器 --> 一次性使用葯液) --- PROC_EXECSQL('update DXC_GOODS set NAME=''一次性使用葯液'' where MID=164600',strCount); end;
調用執行后

