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

Тема в разделе "SQL", создана пользователем Lex_nv, 15 янв 2007.

  1. Lex_nv

    Lex_nv Гость

    требуется примерно вот что:

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

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

    Зарание спасибо.
     
  2. Barmutik

    Barmutik Гость

    Какой сервер БД вы используете ?
     
  3. Lex_nv

    Lex_nv Гость

    Oracle 8.1
    Работаю через php4
     
  4. ooo

    ooo Гость

    Расскажите ,что это за BLOB такой в Oracle 8.1 , может пригодится.
     
  5. ooo

    ooo Гость

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

    Lex_nv Гость

    Я был бы очень признателен если было бы не образное разведение руками со словами "Это делается примерно вот так", а кусок РАБОЧЕГО кода.
    Зарание спасибо.
     
  7. Barmutik

    Barmutik Гость

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

    ???? Гость

    http://www.oracle.com/technology/pub/artic...uecks_lobs.html
    http://www.php.net/manual/ru/ref.oci8.php

    Код (Text):
    $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);
     
Загрузка...

Поделиться этой страницей