oci_new_collection не находит тип. Как починить?

Vorobeika

Guest
oci_new_collection не находит тип. Как починить?

Версия PHP 5.0.2
Коллекция пытается создаться так:
PHP:
$mycoll = oci_new_collection($c,"LVARCHAR");
Тип (глобальный) создается так:
Код:
CREATE OR REPLACE type lvarchar as table of varchar2(32767)
Результат такой:
"oci_new_collection(): OCITypeByName: OCI-22303: type 'lvarchar' not found"

Проблема появилась именно с установкой PHP 5.0.2, до этого (4.3.9) ocinewcollection($c,"LVARCHAR") беззвучно создавалась.
Поиск по гугле и здесь мало что дал (упоминание проблемы было, а вот решения нет).

Что могло бы помочь? Пробовали с указанием схемы и без, с разными кейсами, oci_new_collection и ocinewcollection и т.д. Танцы с бубном оставили на черный день...
 

tony2001

TeaM PHPClub
имя схемы лучше указывать явно.
все имена - в верхнем регистре, у Оракла это пережитки DOSа.
 

Vorobeika

Guest
CREATE OR REPLACE
type LVARCHAR as table of varchar2(32767)


PHP:
$mycoll = oci_new_collection($c,"LVARCHAR","BKI");
Результат тот же, разве что в сообщении об ошибке добавилось имя схемы
 

tony2001

TeaM PHPClub
Код:
Enter user-name: system
Enter password:

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> create or replace type lvarchar as table of varchar2(32767);
  2  /
PHP:
$ora_user = "system";
$ora_password = "*";
$ora_sid = "*";
$c = OCILogon($ora_user, $ora_password, $ora_sid);

$mycoll = oci_new_collection($c,"LVARCHAR");
var_dump($mycoll->append('123'));
var_dump($mycoll->size());
bool(true)
int(1)
 

Vorobeika

Guest
Обнаружилось...
Вышеприведенный код не работает из-под апача. Консольный - работает.
 

tony2001

TeaM PHPClub
я выполнял этот код именно под модулем Апача.
проверьте все переменные среды окружения.
посмотрите различия в phpinfo() там и там.
 

Vorobeika

Guest
Ура! Заработало!!! Спасибо.
# env -i PATH=$PATH /sbin/start-stop-daemon --quiet \
/sbin/start-stop-daemon --quiet \
 

Vorobeika

Guest
Это /etc/init.d/apache2
При старте env -i резались переменные окружения кроме PATH

Gentoo Linxu
 

tony2001

TeaM PHPClub
а, понял.

>Gentoo Linux
а Оракл локально стоит или где-то на другом сервере? (просто интересно)
и как поставился Оракловый клиент? проблем никаких не возникало?
 

tony2001

TeaM PHPClub
удивительно =)
хотя, может, они наконец нормально все сделали...
10-й же Оракл, насколько я понимаю?
 

tony2001

TeaM PHPClub
тогда вообще чудеса.
под RH-подобными Линуксами надо несколько существенных телодвижений сделать, чтобы он установился и начал работать. Это при том, что RH, ессно, сертифицирован Ораклом.

ну ладно, будем считать, что Оракл исправился с помощью патчей =)
спасибо за информацию.
 

si

Administrator
Это при том, что RH, ессно, сертифицирован Ораклом
не весь RH а вполне конкретные дистрибутивы, кстати ораклы в пачи до 9205 вставили проверку на дистрибутив и посылают куда подальше если это не сертифицированные, но можно руками это поправить ...
 

tony2001

TeaM PHPClub
>не весь RH а вполне конкретные дистрибутивы,
ясное дело.
я имею ввиду, что RH-like соблюдает обычно структуру каталогов, принципы размещения файлов и т.п.
соотв-но, когда видишь явные баги инсталлятора - очень удивляешься.
 
Сверху