Evg*_*y O 5 c# oracle odp.net parameter-passing
我有一个名为的Oracle存储过程CREATE_CASE_EXL:
PROCEDURE CREATE_CASE_EXL(P_RICdata RICTab,
P_sACTION_TYPE IN VARCHAR2);
Run Code Online (Sandbox Code Playgroud)
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)
);
Run Code Online (Sandbox Code Playgroud)
我在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;
Run Code Online (Sandbox Code Playgroud)
我需要在.NET中执行类似的操作。您能否建议我如何将参数作为数据表传递给Oracle存储过程?我应该为此使用UDT吗?
实际上我发现它是受支持的,但是您必须使用 Oracle UDT 来实现此目的。
这是我用来解决问题的资源的链接: http://appsjack.blogspot.co.uk/2010/09/pass-custom-udt-types-to-oracle-stored.html
非常感谢大家的建议!