首页新闻找找看学习计划

CYQ.Data 使用oracle存储过程问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-12-27 10:50

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呢? 求解答

damonxx的主页 damonxx | 初学一级 | 园豆:125
提问于:2017-12-26 14:40
< >
分享
最佳答案
0

MProc 有个SetCustome 用来处理游标和返回值,output等特殊值的参数的。

收获园豆:50
路过秋天 | 老鸟四级 |园豆:4746 | 2017-12-26 21:03
其他回答(1)
0

@路过秋天

damonxx | 园豆:125 (初学一级) | 2017-12-26 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册