| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Oracle: вставить в поле LONG RAW данные |
| Автор: barabanshik 24.5.2008, 10:52 | ||
| Добрый день, нужно вставить средствами php строку из текстового файла в таблицу оракла в поле с типом данных long raw. Никогда не работал с таким типом, если кто сталкивался, подскажите как быть... Выполняю следующий скрипт
и получаю ошибку ORA-01741 и ворнинг Warning: ociexecute(): supplied resource is not a valid oci8 statement resource |
| Автор: gta4kv 24.5.2008, 14:49 |
| skyboy, правду говорит, в OCIExecute надо передавать statement, а не connect indef. |
| Автор: barabanshik 26.5.2008, 08:32 |
| Заменил $c на $q в функции OCIEXECUTE, теперь ругается так: Warning: ociparse() [function.ociparse]: ORA-01741 и Warning: ociexecute() expects parameter 1 to be resource, boolean given in longraw.php on line 13 |
| Автор: gta4kv 26.5.2008, 08:50 | ||
Как 100% рабочий пример. |
| Автор: barabanshik 26.5.2008, 09:19 |
| Select у меня тоже нормально работает, а вот update не хочет |
| Автор: barabanshik 26.5.2008, 09:36 |
| обнаружил похожую ситуацию по этому адресу http://bugs.php.net/bug.php?id=37059 , так там еще какая-то функция OCIBindByName используется |
| Автор: skyboy 26.5.2008, 09:53 |
| barabanshik, будь добр, удели полминуты статье по http://php.net/oci_parse и посмотри, в каких случаях эта функция возвращает false, а в каких - ресурс результата выполнения. также обрати внимание на функцию http://php.net/oci_error, как ответ на вопрос "как же мне вывести текст ошибки?" Добавлено через 2 минуты и 22 секунды кстати, да. вполне допускаю, что для вставки бинарных данных потребуется использование параметров в запросе. но это не отменяет того, что я написал выше. |
| Автор: barabanshik 26.5.2008, 10:48 | ||
подкорректировал запрос,
теперь получаю другую ошибку Warning: ociexecute() [function.ociexecute]: ORA-01465: ҐўҐа® § ¤ ® иҐбв ¤ж вҐаЁз®Ґ зЁб«® in longraw.php on line 14 ORA-01465: неверно задано шестнадцатеричное число |
| Автор: barabanshik 28.5.2008, 14:31 | ||
| Перевел строку в hex, теперь ошибка Warning: ociexecute() [function.ociexecute]: ORA-01461: ¤®ЇгбЄ Ґвбп ЇаЁўп§Є LONG § 票п в®«мЄ® ¤«п § ҐбҐЁп ў бв®«ЎҐж LONG in longraw.php on line 20 ORA-01461: допускается привязка LONG значения только для занесения в столбец LONG
Так ведь у меня COLUMN2 и есть типа LONG RAW ! что здесь не так? |
| Автор: barabanshik 30.5.2008, 08:29 | ||
Нашел как нужно было сделать
Спасибо всем за помощь и участие ! |