Приветствую.
Я новичок в Yii и сейчас стоит задача по работе с базой Oracle в частности по вызову хранимых процедур.
Есть хранимая процедура:
secmgr.tester.login( ilogin varchar2, -- имя-
ipasswd in varchar2, -- пароль</SMILE>
iip_addr in varchar2, -- IP клиента
oid_registration out number, -- 0 если неудача
omess out varchar2); -- комментарий почему неудача
Побороздив просторы интернета написал такой код:
$connection=Yii::app()->db;
$oid_registration = $omess = "";
$sql="CALL SECMGR.TESTER.LOGIN('test', 'test', '2232', :oid_registration, :omess)";
$command=$connection->createCommand($sql);
$command->bindValue(":oid_registration",$oid_registration,PDO::PARAM_STR);
$command->bindValue(":omess",$omess,PDO::PARAM_STR);
$command->query();
Но когда пытаюсь выполнить то получаю в Chrome
HELP! Что делаю не так я понять не могу… В поисках ответа уже 2-й день.
Charger
(Charger)
April 10, 2012, 10:54am
2
Попробуй
$command->execute();
это выполнит запрос не получая результата. Просто интересно что будет.
Не знаю как в Oracle а в Postgre при вызове хранимой процедуры, которая должна вернуть что то делалось "Select … FROM {имя процедуры(параметры)}"
Если не поможет то выведи текст запроса и проверь его правильность загрузив в Oracle.
echo $command->text;
Попробуй
$command->execute();
Пробовал. Тот-же результат.
Если отключаю выполнение то страница грузится нормально.
Получаю такой текст:
CALL SECMGR.TESTER.LOGIN('test', 'test', '2232', :oid_registration, :omess)
А разве oid_registration и omess не должны были замениться на пустые значения?
Попробовал сменить bindValue на bindParam. Ничего не поменялось.
Вообще эти 2 параметра oid_registration и omess должны возвращать результат из хранимой процедуры.
Charger
(Charger)
April 11, 2012, 5:43pm
4
Боюсь не могу тут помочь, не знаю Oracle. Может кто-то еще из сообщества подскажет?
seb
(Serebrov)
April 12, 2012, 12:49pm
5
А не в Chrome? В логах yii что-то есть, в отладке смотрели?
Я тоже по Ораклу не специалист, но, возможно, проблема не в Оракле? Другие запросы к базе работают?