У меня есть функция Oracle, которая возвращает набор записей.Я ввел параметры в функцию Oracle, и это заставляет код переднего плана становиться бесполезным.
Вот мой код переднего плана.
OracleCommand od = oc.CreateCommand();
od.CommandType = System.Data.CommandType.Text;
od.CommandText = " select * from table(pkg_fetchPOInfo.getPORowsTable(:1,:2))";
//od.CommandText = "pkg_fetchPOInfo.getPORowsTable";
//od.CommandType = System.Data.CommandType.TableDirect;
OracleParameter op1 = new OracleParameter();
op1.ParameterName = "1";
op1.OracleDbType = OracleDbType.Varchar2;
op1.Direction = System.Data.ParameterDirection.Input;
op1.Size = 6;
op1.Value = strPONumber;
od.Parameters.Add(op1);
OracleParameter op2 = new OracleParameter();
op2.ParameterName = "2";
op2.OracleDbType = OracleDbType.Varchar2;
op2.Direction = System.Data.ParameterDirection.Input;
op2.Size = 3;
op2.Value = "US";
od.Parameters.Add(op2);
Если я выполняю запрос во внешнем интерфейсеКонец SQLPLUS, я получаю набор записей.Этот код работает, если я удаляю параметры из пакета и интерфейсный код.
select * from table (pkg_fetchPOInfo.getPORowsTable ('1007446', 'US'));- работает в SQLPLUS.
select * from table (pkg_fetchPOInfo.getPORowsTable ());- работает в обоих местах.
Неправильно ли я назначаю параметры?