TABLE OF VARCHAR2 Oracle odp.net的输出参数

时间:2009-11-13 10:56:58

标签: parameters odp.net

我有这种类型:

TYPE tipo_TableVarchar2 IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER;

和程序get_array (p_arr out TableVarchar2 )是......

OracleParameter param = new OracleParameter();
param.OracleDbType = OracleDbType.Varchar2;
param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
param.ParameterDirection = ParameterDirection.Output;

cm.Parameters.Add(param);

如何使用OracleParameter的输出来获取值?

1 个答案:

答案 0 :(得分:1)

查看Oracle 11g odp.net驱动程序,它允许您传递Oracle类型。 Oracle网站上以及11g家庭的安装目录中有一些示例...... C:\甲骨文\ Ora11g_Home \ odp.net \样品\ 2.x的\ UDT

我不得不撤回此示例中的对象类型。

你会有这样的......

        OracleParameter p_params = new OracleParameter();
        p_params.ParameterName = "params";
        p_params.OracleDbType = OracleDbType.Object;
        p_params.Direction = ParameterDirection.InputOutput;
        // Note: The UdtTypeName is case-senstive
        p_params.UdtTypeName = "SCHEMA_NAME.TYPE_NAME";

您还需要一个定义类型的类。 对“OracleObjectMappingAttribute”和“IOracleCustomTypeFactory”进行一些搜索。

旁注 - 我正在使用11g odp.net驱动程序来打10g数据库。您只需要在项目中引用以下数据:oci.dll,oraociicus11.dll和OraOps11w.dll。你应该已经引用了Oracle.DataAccess.dll(只要确保你开始点击11g版本)。