如何通过从C#到Oracle存储过程的表值参数 [英] How to pass a table-valued parameter from C# to Oracle stored procedure
问题描述
我有一个名为 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屋!