|
|
|
Вызов функции пакета Oracle через PDO, не возвращает результат
|
|||
|---|---|---|---|
|
#18+
Помогите плиз с такой проблемкой – нужно вызвать функцию из пакетика (Oracle 11.2g XE) Вот код Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В $result пусто :( При этом просто выборка из этой же таблицы в этой же базе отрабатывает на ура Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Так что проблема не в базе и не в коннекте. Сама функция объявлена так Код: plsql 1. 2. 3. 4. 5. Я думал что проблема в дате - менял строку с ‘2012-06-12’ на ’12.06.2012’ и ’12-Jun-2012’ ’12-June-2012’ и все равно не работает. Подскажите плиз как правильно… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2012, 19:11:37 |
|
||
|
Вызов функции пакета Oracle через PDO, не возвращает результат
|
|||
|---|---|---|---|
|
#18+
LowCoder, p_date объявлена как дата. передавать значит нужно не строку а дату. попробуйте так Код: php 1. 2. либо внутри функции приводить строку к дате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 08:10:39 |
|
||
|
Вызов функции пакета Oracle через PDO, не возвращает результат
|
|||
|---|---|---|---|
|
#18+
Все к сожалению не так :( Я разрулил фишку НО вынужден отказаться от PDO. Тырнеты говорят что для оракла PDO еще слишком глюкаво и сыро. Пускать это в серьезный продакшн (а у меня именно такой) откровенно говоря стремно. буду рад если кто нибудь меня убедит в обратом. Что касается моей топик проблемы то похоже функцию (не хранимку) вызвать средствами PDO вообще нельзя. Так я нарыл в тырнетах но могу впрочем ошибатся но сломав моск я не нашел решения. Итог переход на родной oci8. Тому кстати еще соображение что раз уж универсально (PDO) не получается и вряд ли в моем проекте будет миграция на другую БД если уж есть Оракл и моя контора готова отсыпать мешок звонких шекелей за нея. А в случае с oci8 это вроде как родное все и в случае чего можно оракл и пнуть официально - пусть работают. Такие дела. Кстати даже на oci8 вызов функции это маленькое вуду и выглядит страшновато - что бы народ не мучался вот как заработало в моем случае... Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. в запросе ничего убрать нельзя - стоит убрать точку с запятой на конце не работает. Без begin end тоже не работет. Что не решил ток это переменная $result= " "; думаете зря она так? А вот и нет - если её объявить как пустую строку или как $result=Array(); или не объявить вовсе то не работате и оракл ругается что буфер недостаточного размера. Как красиво написать не подумал пока. Может быть кто подскажет? Дату тоже не получается так писать Код: php 1. 2. 3. и опять же остается вопрос как быть - формат даты явно зависит от установленного у меня на компе а как будет в другом случае. Вообще в SQL стандарте принят формат даты YYYY-MM-DD и я как то привык уже этому следовать, а как тут дату приводить к какому то единому виду пока непонятно... Вообщем все это сильно коряво выглядит но что делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 18:26:10 |
|
||
|
Вызов функции пакета Oracle через PDO, не возвращает результат
|
|||
|---|---|---|---|
|
#18+
Спасибо, спасли меня !!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 16:40:37 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=139&tid=1464882]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 352ms |

| 0 / 0 |
