Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с CLOB-ами, хранимые процедуры Oracle 
:(
    Опции темы
sagow
Дата 18.5.2010, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.11.2009

Репутация: нет
Всего: нет



Столкнулся с проблемой.

Есть простейшая процедура работы с clob

Код

$db = OCILogon($user, $password);

$sql = "begin   SText.SetText( :id, :sMessage); end;";

$s = OCIParse($db, $sql);

$clob = OCINewDescriptor($db, OCI_D_LOB);

OCIBindByName($s, ':id', $id);

OCIBindByName($s, ':sMessage', $clob, -1, OCI_B_CLOB);

$clob->WriteTemporary($value);

OCIExecute($s, OCI_DEFAULT);

OCICommit($db);

$clob->close();

$clob->free();

OCIFreeStatement($s);



Всё бы хорошо и работает на локале, НО на сервере стоит старый клиент и WriteTemporary - выдаёт ошибку что не найден (Call to undefined method OCI-Lob::WriteTemporary() ). В интернете нашёл только 2 примера, работа с update insert, и с хранимыми процедурами через  WriteTemporary.
Есть ещё способы работы с процедурами без WriteTemporary?.

PM MAIL   Вверх
sagow
Дата 18.5.2010, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.11.2009

Репутация: нет
Всего: нет



Может и пригодиться кому. Чтоб время зря не терять.

как реализовал.

Код

$db = OCILogon($user, $password);

$sql = "begin   SText.SetText( :id, :sMessage); end;";
$s = OCIParse($db, $sql);
OCIBindByName($s, ':id', $id);
$clob = createClobTemporary($db,$value);
OCIBindByName($s, ':sMessage', $clob, -1, OCI_B_CLOB);
OCIExecute($s, OCI_DEFAULT);
OCICommit($db);
$clob->free();
OCIFreeStatement($s);


function createClobTemporary($db = null,$value=null){
$sql = "
begin
 dbms_lob.createtemporary( :cl, true );
end;
";

$s = OCIParse($db, $sql);
$clob = OCINewDescriptor($db, OCI_D_LOB);
OCIBindByName($s, ':cl', $clob, -1, OCI_B_CLOB);
OCIExecute($s, OCI_DEFAULT);
$clob->write($value);
return $clob;
}



p.s $clob->close(); - тоже не работает, пришлось отказаться.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.