簡體   English   中英

在Oracle中將DataTable傳遞給過程

[英]Passing DataTable to Procedure in Oracle

我需要將DataTable作為參數傳遞給Oracle數據庫中的存儲過程。

當我使用SQLDbType.Structured傳遞DataTableSQLServe ,但是在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM