[英]Passing DataTable to Procedure in Oracle
我需要將DataTable
作為參數傳遞給Oracle
數據庫中的存儲過程。
當我使用SQLDbType.Structured
傳遞DataTable
到SQLServe
,但是在OracleDbType
找不到Structured
類型。 我可以使用哪種數據類型將DataTable
作為參數傳遞給Oracle過程?
這是一個示例,我將一個Associative array
傳遞給過程:
SQL> CREATE OR REPLACE
2 PACKAGE pkg_test
3 IS
4 TYPE typ
5 IS
6 TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
7 PROCEDURE P_TEST(
8 DATASET TYP);
9 END pkg_test;
10 /
Package created.
SQL>
SQL> CREATE OR REPLACE
2 PACKAGE BODY pkg_test
3 IS
4 PROCEDURE P_TEST(
5 DATASET TYP)
6 IS
7 BEGIN
8 FOR i IN 1..dataset.count
9 LOOP
10 dbms_output.put_line(dataset(i));
11 END LOOP;
12 END P_TEST;
13 END pkg_test;
14 /
Package body created.
SQL>
SQL> DECLARE
2 var_typ pkg_test.typ;
3 BEGIN
4 VAR_TYP(1) := 'Procedure P_TEST test';
5 VAR_TYP(2) := 'Another test for procedure P_TEST';
6 pkg_test.p_test(var_typ);
7 END;
8 /
Procedure P_TEST test
Another test for procedure P_TEST
PL/SQL procedure successfully completed.
更新 :進行了一些搜索,不確定了C#
代碼,但希望對您有所幫助。
也許您可以這樣做:
OracleCommand cmdOra = new OracleCommand(StoredProcedureName, Connection);
cmdOra.CommandType = CommandType.StoredProcedure;
OracleDataAdapter da = new OracleDataAdapter();
da.InsertCommand = cmdOra;
da.Update(dsDataSet);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.