0
我已定义为一个简单的包如下:ODP.NET无法识别在Oracle包过程
CREATE OR REPLACE PACKAGE wvParty IS
TYPE refParties IS REF CURSOR;
END wvParty;
CREATE OR REPLACE PACKAGE BODY wvParty IS PROCEDURE proc_GetParties( p_party_name IN OUT VARCHAR2, x_party_info OUT refParties ) IS BEGIN p_party_name:= '%' || || p_party_name '%';
OPEN x_party_info FOR
SELECT party_id, party_number, party_type, party_name,
person_first_name, person_middle_name, person_last_name,
known_as, known_as2, known_as3, known_as4, known_as5
FROM hz_parties
WHERE 1=1
AND party_name LIKE p_party_name;
END;
END wvParty;
它在oracle数据库中创建,没有错误。在我的代码,我试图用叫它:
try
{
OracleConnection conn = new OracleConnection(_connStr);
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "wvParty.proc_GetParties";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter partyName = new OracleParameter();
partyName.ParameterName = "p_party_name";
partyName.OracleDbType = OracleDbType.Varchar2;
partyName.Direction = ParameterDirection.InputOutput;
partyName.Value = "Bubba";
cmd.Parameters.Add(partyName);
OracleParameter refParties = new OracleParameter();
refParties.ParameterName = "x_party_info";
refParties.OracleDbType = OracleDbType.RefCursor;
refParties.Direction = ParameterDirection.Output;
cmd.Parameters.Add(refParties);
OracleDataReader rdr = cmd.ExecuteReader();
然而,当我做我的错误:
PLS-00302:组件“PROC_GETPARTIES”必须申报。
所以我很茫然。我已经创建了proc作为包的一部分,我已经宣布了它,因为我相信我应该这样做,但我很少成功地解决这个问题。任何建议?