Цитата:
Получаю следующее сообщение:
Error Сообщение (17:47:22) Невозможно выбрать запись в '' ('')
База данных SQL обнаружила ошибку.
Info Сообщение (17:47:22) Описание ошибки SQL: ORA-24333: zero iteration сount
Info Сообщение (17:47:22) Оператор SQL: call axuser.bocTest01(5);
Что я делаю не так?
Все очень просто - DSV сказал очень важную фразу:
PHP код:
Ну нет в оракле селективных процедур, НЕТУ!!!
Посему, вот это выражение тоже не имеет смысла:
PHP код:
resultSet = stmt.executeQuery(sqlS);
Ну ничего Вам оттуда не вернется !!! А делать надо так:
PHP код:
stmt.executeUpdate(sqlS);
Честно говоря самому стало интересно - вот пошаговый tutorial:
Создаем табличку в БД:
PHP код:
create table Test (
id int);
Пишем процедуру:
PHP код:
create or replace procedure TestProcedure(p_id int)
as
begin
insert into Test(id) values(p_id);
commit;
end;
Пробуем:
PHP код:
call TestProcedure(3);
Проверяем:
PHP код:
select * from Test;
- Все работает.
Теперь подключаем к этому делу Аксапту:
PHP код:
static void OracleSP(Args _args)
{
Connection connection;
Statement stmt;
str sqlS;
;
connection = new Connection();
stmt = connection.createStatement();
sqlS = 'call TestProcedure(5)';
stmt.executeUpdate(sqlS);
}
Запускаем. Лезем в табличку Test и видим, что там появилась 5-ка, что свидетельствует о том, что процедура была вызвана.