У меня здесь новая база данных, и это обновленная версия Oracle 10g до Oracle 11g - основная проблема связана с столбцами больших объектов, и каждый раз, когда какая-либо функция возвращает в качестве результата LOB, новая база данных не будет возвращать такие строки, как старая:
Старая база данных:
["C"]=>
string(23) "3874163,3874197,3874201"
Новая база данных:
["C"]=>
resource(182) of type (stream)
Теперь при чтении потоков иногда возникает ошибка ссылки на несуществующий ресурс потока, и все не выполняется . Я предполагаю, что соединение тем временем закрыто без чтения потока, и поэтому доступ потерян.
При изменении операторов, чтобы включить приведение к varchar, например:
CONVERT(VARCHAR, C, 120)
Или вот так:
SELECT TO_CHAR(FUNC())
Значение снова возвращается в виде строки, но это не совсем оптимальное решение, так как каждый оператор нужно будет изменить .
Есть ли способ / опция, чтобы предотвратить доставку больших объектов в виде потоков, чтобы они вместо этого доставлялись в виде строк, как в Oracle 10g?
Изменить:
Мы используем набор функций oci для доступа к базе данных.