ODP.NET 2 Day + 개발자 가이드를 읽지 못했지만이 문제는 정말 분실했습니다. 함수 정의 (패키지에 저장 됨)를 제공했지만 데이터 셋을 캐스팅해야하는지 또는 함수를 전달해야하는지 이해하지 못합니다. 다음은 함수 정의는 다음과 같습니다ODP.NET과 데이터 세트를 사용하여 데이터를 삽입하는 Oracle 함수를 어떻게 호출합니까? (특정 예)
여기FUNCTION ins (
rec_data IN OUT schema.table%ROWTYPE,
p_rowid OUT ROWID,
p_execution_ts IN schema.table.update_ts%TYPE)
RETURN NUMBER
우리가 한 일입니다 (아무것도하지 않는 한) :
// inserts data
public void insertData(DataSet Data)
{
string connStr = "DATA SOURCE=someValidConnString";
OracleConnection conn = new OracleConnection(connStr);
string rowID = String.Empty;
Int32 rtnVal = 0;
try
{
conn.Open();
OracleCommand insCmd = new OracleCommand("PACKAGE.ins", conn);
insCmd.CommandType = CommandType.StoredProcedure;
OracleParameter outParam2 = new OracleParameter("retVal", OracleDbType.Varchar2, rtnVal,
ParameterDirection.ReturnValue);
insCmd.Parameters.Add(outParam2); //return value
OracleParameter inParam1 = new OracleParameter("rec_data", OracleDbType.NVarchar2, dsACCTData.Tables
[0].Rows[0], ParameterDirection.InputOutput);
OracleParameter outParam = new OracleParameter("p_rowid", OracleDbType.Varchar2, rowID,
ParameterDirection.Output);
OracleParameter inParam2 = new OracleParameter("p_execution_ts", OracleDbType.Date,
Oracle.DataAccess.Types.OracleDate.GetSysDate(), ParameterDirection.Input);
insCmd.Parameters.Add(inParam1); //first in out parameter
insCmd.Parameters.Add(outParam); //second out parameter
insCmd.Parameters.Add(inParam2); //third in parameter
insCmd.ExecuteNonQuery();
conn.Close();
}
catch (OracleException ee)
{
throw ee;
}
finally
{
conn.Dispose();
}
}
나는 이것이 VRY 특정 질문에 알고하지만 난 정말 잃었어요. 오라클 함수가 작동한다고 가정 해 봅시다.이 경우 ODP.NET을 사용하여 올바르게 호출하는 법을 모릅니다.
도움을 주셔서 감사합니다.
편집 :
ORA-06550 : 줄 1, 열 15 : PLS-00306 : 잘못된 번호 또는 ORA-06550 'INS'에 대한 호출에서 인수의 종류 : 1 호선 여기에 오류 메시지는 열 7 : PL/SQL : 문 무시
종류와 관련, 복어
받고있는 오류를 게시 할 수 있습니까? – Harrison
네, 사과드립니다. – Fugu