zoukankan      html  css  js  c++  java
  • php 操作 oracle lob 数据2

    CREATE SEQUENCE mylobs_id_seq
        NOMINVALUE
        NOMAXVALUE
        NOCYCLE
        CACHE 20
        NOORDER
    INCREMENT BY 1;

    CREATE TABLE mylobs (
        id NUMBER PRIMARY KEY,
        mylob CLOB
    )

    插入

    <?php
    header("content-type:text/html;charset=utf-8");
    error_reporting(E_ALL);
    set_time_limit(0);

    echo "<pre>";

    $conn=oci_connect('demo','demo','localhost/xe','utf8');

    $sql = "INSERT INTO
            mylobs
              (
                id,
                mylob
              )
           VALUES
              (
                mylobs_id_seq.NEXTVAL,
                EMPTY_CLOB()
              )
           RETURNING
              mylob INTO :mylob_loc";

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

    $myLOB = oci_new_descriptor($conn, OCI_D_LOB);

    oci_bind_by_name($stmt, ":mylob_loc", $myLOB, -1, OCI_B_CLOB);

    oci_execute($stmt, OCI_DEFAULT) or die ("Unable to execute query ");

    $content=str_repeat('你',80000);
    if ( !$myLOB->save($content) ) {
        oci_rollback($conn);
    } else {
        oci_commit($conn);
    }
    oci_free_statement($stmt);
    $myLOB->free();
    oci_close($conn);

     

    查询

    <?php
    header("content-type:text/html;charset=utf-8");
    error_reporting(E_ALL);
    set_time_limit(0);

    echo "<pre>";

    $conn=oci_connect('demo','demo','localhost/xe','utf8');


    $sql = "SELECT * FROM mylobs ORDER BY id";

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

    oci_execute($stmt) or die ("Unable to execute query ");

    while ( $row = oci_fetch_assoc($stmt) ) {
        echo "ID: {$row['ID']}, ";
        echo $row['MYLOB']->load()." ";
    }
    oci_free_statement($stmt);

    oci_close($conn);


     

    修改

    <?php
    header("content-type:text/html;charset=utf-8");
    error_reporting(E_ALL);
    set_time_limit(0);

    echo "<pre>";

    $conn=oci_connect('demo','demo','localhost/xe','utf8');


    $sql = "SELECT mylob FROM mylobs WHERE id = 1 FOR UPDATE";

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

    oci_execute($stmt, OCI_DEFAULT) or die ("Unable to execute query ");

    if ( FALSE === ($row = oci_fetch_assoc($stmt) ) ) {
        oci_rollback($conn);
        die ("Unable to fetch row ");
    }

    if ( !$row['MYLOB']->truncate() ) {
        oci_rollback($conn);
        die ("Failed to truncate LOB ");
    }

    if ( !$row['MYLOB']->save('UPDATE: '.date('H:i:s',time()) ) ) {
        oci_rollback($conn);
    } else {
        oci_commit($conn);
    }

    oci_free_statement($stmt);
    $row['MYLOB']->free();


    oci_close($conn);
  • 相关阅读:
    java socket解析和发送二进制报文工具(附java和C++转化问题)
    hibernate缓存机制(二级缓存)
    Spring MVC中前后台数据传输小结
    NUC972 MDK NON-OS
    代码是如何控制硬件的?
    C语言位运算+实例讲解(转)
    C语言程序真正的启动函数
    51单片机的时钟及总线时序和总线扩展
    如何通过Keil将程序正确的下载进flash中
    说说M451例程讲解之串口
  • 原文地址:https://www.cnblogs.com/songzhenghe/p/4582318.html
Copyright © 2011-2022 走看看