oracle 存储过程如下:
1 CREATE OR REPLACE 2 PROCEDURE PROC1( 3 query_id IN VARCHAR2, 4 query_date IN VARCHAR2, 5 result OUT sys_refcursor 6 ) 7 IS 8 TSQL VARCHAR2(3000); 9 BEGIN 10 TSQL:=' 11 SELECT 12 CODENAME, 13 ROUND(100*(OK_NUMS/TEST_NUMS),2)||''%'' AS YIELD 14 FROM V_REPORT_DAY 15 WHERE TO_CHAR("TIME",''yyyy-MM-dd'') = '''||query_date 16 ||''' 17 AND ITEM='''||query_id 18 ||''''; 19 20 DBMS_OUTPUT.PUT_LINE(TSQL); 21 --EXECUTE IMMEDIATE TSQL; 22 OPEN result FOR TSQL; 23 END;
C#调用存储过程如下
1 //调用存储过程 2 using (MProc proc = new MProc("PROC1", m_databinding.m_StrsqlCon)) 3 { 4 proc.Clear(); 5 proc.Set("query_date", "2017-11-01");//传入存储过程参数 6 proc.Set("query_id", "LED"); 7 8 dt_report = proc.ExeMDataTable().ToDataTable(); 9 10 11 }
调试时提示参数类型或数目不对,那么该如何取得存储过程的输出result呢? 求解答
MProc 有个SetCustome 用来处理游标和返回值,output等特殊值的参数的。
@路过秋天