如何通过从C#到Oracle存储过程的表值参数 [英] How to pass a table-valued parameter from C# to Oracle stored procedure

查看:325
本文介绍了如何通过从C#到Oracle存储过程的表值参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为 CREATE_CASE_EXL Oracle存储过程:

I have an Oracle stored procedure named CREATE_CASE_EXL:

PROCEDURE  CREATE_CASE_EXL(P_RICdata RICTab,
                       P_sACTION_TYPE IN VARCHAR2);



其中, RICTab 是一个自定义类型:

TYPE RICTab IS TABLE OF MMSRRicRec  INDEX BY BINARY_INTEGER;

TYPE MMSRRicRec IS RECORD
 ( RIC        VARCHAR2(32),
   FID_NO     NUMBER(8),
   REC_ID     NUMBER(8),
   MMS_ACTION VARCHAR2(1)
 );



我运行PL这段代码/ SQL执行 CREATE_CASE_EXL

DECLARE
pTE_RICS     RICTab 

BEGIN
    pTE_RICS(1).RIC  := 'RIC1';
    pTE_RICS(1).FID_NO := NULL;
    pTE_RICS(1).REC_ID := 3;
    pTE_RICS(1).MMS_ACTION := 'A';

    pTE_RICS(1).RIC  := 'RIC2';
    pTE_RICS(1).FID_NO := NULL;
    pTE_RICS(1).REC_ID := 4;
    pTE_RICS(1).MMS_ACTION := 'A';

    CREATE_CASE_EXL( pTE_RICS , 'A');

END;



我需要执行在.NET中类似的东西。你能请告知我怎么能传递一个参数作为数据表,Oracle存储过程?我应该使用UDT完成这个任务?

I need to execute something similar in .NET. Can you please advise how could I pass a parameter as a table of data to an Oracle stored procedure? Should I use a UDT for this task?

推荐答案

其实我发现,它的支持,但你必须使用Oracle UDT为目的。

actually I found that it's supported, but you have to use Oracle UDT for that purpose.

下面的链接,这是我用来解决问题的资源:
http://appsjack.blogspot.co.uk/2010/09/pass-custom-udt-types-to -Oracle-stored.html

Here's link to the resources which I used to solve the issue: http://appsjack.blogspot.co.uk/2010/09/pass-custom-udt-types-to-oracle-stored.html

非常感谢大家的意见!

这篇关于如何通过从C#到Oracle存储过程的表值参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆