문제

asp.net에서 어떻게 저장된 절차를 Varray를 수락하는 Oracle 패키지로 호출 할 수 있습니다. Varray는 저장 프로 시저가 적절한 레코드를 수정하는 데 사용할 키 목록을 전달합니다. 키를 별도의 전화로 보내거나 구분 된 목록을 보낼 수는 있지만 배열을 사용하고 싶습니다.

도움이 되었습니까?

해결책

ODP.net을 사용하고 있다고 가정합니다 (사용하지 않아야합니다 System.Data.OracleClient 어쨌든), 여기에는 다음과 같은 방법이 있습니다.

using System;
using System.Data;
using Oracle.DataAccess.Client;

class SomeClass
{
    void SomeMethod(string connectionString, int[] anArrayOfKeys)
    {
        using (var con = new OracleConnection(connectionString))
        using (var cmd = con.CreateCommand())
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "StoredProcedureNameGoesHere";
            cmd.Parameters.Add(
                "ParameterNameGoesHere",
                OracleDbType.Array,
                anArrayOfKeys,
                ParameterDirection.Input);

            con.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

다른 팁

당신은 이것을 시도 했습니까?

OracleCommand cmd = OracleConnection1.CreateCommand();
cmd.CommandText = "INSERT INTO ArrayTable VALUES (:CODE, :TITLE, : ARR1, :ARR2)";
...
OracleArray arr1 = new OracleArray("SCOTT.TARRAY1", OracleConnection1);
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
...
cmd.Parameters["ARR1"].DbType = OracleDbType.Array;
cmd.Parameters["ARR1"].Value = arr1;
...
cmd.ExecuteNonQuery();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top