Помогите с Blob полями

  • Автор темы Lex_nv
  • Дата начала
L

Lex_nv

Гость
#1
требуется примерно вот что:

update PARTNER_KONTACT set stl1=concat(stl1,'$m')

тип столбца stl1 это BLOB, запрос не работает но суть я думаю понятна, мне соответственно нужно знать как должен выглядеть рабочий вариант.

Зарание спасибо.
 
O

ooo

Гость
#5
Тогда ясно, что поле надо в строчное перевести. Можно еще попробовать знак " || " , одно и то же.
 
L

Lex_nv

Гость
#6
Тогда ясно, что поле надо в строчное перевести. Можно еще попробовать знак " || " , одно и то же.
Я был бы очень признателен если было бы не образное разведение руками со словами "Это делается примерно вот так", а кусок РАБОЧЕГО кода.
Зарание спасибо.
 
B

Barmutik

Гость
#7
Не работал с BLOB через php, но я думаю подход один и кажется немного странно что вы патаетесь склеить двоичный бинарный объект и строку.. Я думаю что такая операция через ANSI SQL работать не будет...
 
?

????

Гость
#8
http://www.oracle.com/technology/pub/artic...uecks_lobs.html
http://www.php.net/manual/ru/ref.oci8.php

Код:
$sql = "UPDATE
mylobs
SET
mylob = EMPTY_CLOB()
WHERE
id = 2403
RETURNING
mylob INTO :mylob
";

$stmt = OCIParse($conn, $sql);

$mylob = OCINewDescriptor($conn,OCI_D_LOB);

OCIBindByName($stmt,':mylob',$mylob, -1, OCI_B_CLOB);

// Execute the statement using OCI_DEFAULT (begin a transaction)
OCIExecute($stmt, OCI_DEFAULT) 
or die ("Unable to execute query\n");

if ( !$mylob->save( 'UPDATE: '.date('H:i:s',time()) ) ) {

OCIRollback($conn);
die("Unable to update lob\n");

}

OCICommit($conn);
$mylob->free();
OCIFreeStatement($stmt);