powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вызвать хранимую процедуру
5 сообщений из 5, страница 1 из 1
Как вызвать хранимую процедуру
    #32103209
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здр.

У меня такая ситуация
есть БД Oracle, написал я процедуру writedb(....)
из SQL plus вызываю команду
execute WRITEDB(0,0,'gena','18.10.03') все проходит как и положено
если я пытаюсь делать это из Perl, вот таким образом
$sth = $dbh->prepare("execute WRITEDB(0,0,'gena','18.10.03')");
$sth->execute();
то пишет ошибку:
ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute)
пробовол различные варианты с ; без execute , и через do()
все одно
ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute)
Как вызвать процедуру правильно, напишите что нибудь .....

Спс за внм
...
Рейтинг: 0 / 0
Как вызвать хранимую процедуру
    #32103211
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну DBI это не совсем sqlplus, а скорее совсем не :-)

Надо заключить в анонимный pl/sql блок и оттуда вызвать (без execute естественно). Может есть и другие способы, но я так делаю.
...
Рейтинг: 0 / 0
Как вызвать хранимую процедуру
    #32103213
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю как в php, а в java в JDBC используются отдельные методы для вызова процедур и выполнения запросов. Надеюсь ты правльную процедуру вызываешь? - "$dbh->prepare". Также есть такой момент в JDBC, для вызова процедуры необходимо использовать вызов через анонимный PL/SQL блок типа ("begin writedb(?,?,?,?); end"); И параметры непосредственно не передаются.

Вобщем тебе надо выяснить точный синтаксис вызова процедур Oracle в php
...
Рейтинг: 0 / 0
Как вызвать хранимую процедуру
    #32103214
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е.

Код: plaintext
1.
2.
3.
4.
$sth = $dbh->prepare( "
        BEGIN 
                WRITEDB(0 , 0 ,'gena','18.10.03')"); 
        END;");
$sth->execute(); 
...
Рейтинг: 0 / 0
Как вызвать хранимую процедуру
    #32103227
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые господа спасибо за внимание
все получилось на ура
есть еще один вопрос надо сформулировать только

Я рад что еще остались на земле хорошие люди

P.S.
е.... 2 дня
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как вызвать хранимую процедуру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]