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\n");

$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\n");

while ( $row = oci_fetch_assoc($stmt) ) {
    echo "ID: {$row[‘ID‘]}, ";
    echo $row[‘MYLOB‘]->load()."\n";
}
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\n");

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

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

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);

时间: 2024-08-06 20:01:58

php 操作 oracle lob 数据2的相关文章

php 操作 oracle lob 数据

http://www.oracle.com/technetwork/articles/fuecks-lobs-095315.html Working with LOBs in Oracle and PHPby Harry Fuecks Hitting the 4,000-byte limit? Enter LOBs... Downloads for this article:Oracle Database 10gZend Core for OracleApache HTTP Server 1.3

【甘道夫】Sqoop1.99.3基础操作--导入Oracle的数据到HDFS

第一步:进入客户端Shell [email protected]:~$ sqoop.sh client Sqoop home directory: /home/fulong/Sqoop/sqoop-1.99.3-bin-hadoop200 Sqoop Shell: Type 'help' or '\h' for help. sqoop:000> set server --host FBI003 --port 12000 --webapp sqoop Server is set successfu

操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误

操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误,如下图所示: 出现的原因是由于,在插入字符或字符串型字段时.如果插入的数据是纯数字,则不会有错误:如果出现字符,则会报ORA-00984列在此处不允许异常. 可以创建TestUser表,如下: create table TestUser ( usercode char(5), username varchar2(20) ) 以下例子请注意第一个字段usercode的值 1.正常例子:usercode为纯数字.可以正常插

JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

JavaWeb(三十五)——使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

dos命令行连接操作ORACLE数据库

C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; v$动态表开头,查看动态实例,open为启动. SQL> shutdown immediate关闭数据库 SQL> startup 继续启动 SQL> show parameter db_name 查看数据库名称 查询数据库SCOTT用户默认的状态 SQL> select usern

ORACLE LOB 大对象处理

LOB大对象处理:主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据.主要介绍字符类型和二进制文件类型LOB数据的存储,单独介绍二进制类型LOB数据的存储. 一.  Oracle中的LOB数据类型分类 1,按存储数据的类型分: ①字符类型:   CLOB:存储大量单字节字符数据.   NLOB:存储定宽多字节字符数据.②二进制类型:   BLOB:存储较大无结构的二进制数据. ③二进制文件类型:   BFILE:将二进制文件存储在数据库外部的操作系统文件中.存放文件路径. 2

oracle lob 简单介绍

何为LOB? lob为oracle数据库的一个大对象数据类型,可以存储超过4000bytes的字符串,二进制数据,OS文件等大对象信息.最大可存储的容量根oracle的版本和oracle 块大小有关. 有那几种可供选择的LOB类型? 目前ORACLE提供了CLOB,NCLOB,BLOB,BFILE共四种LOB类型,CLOB,NLOB为大字符串类型,NLOB为多语言集字符类型,类似于NVARCHAR类型,用他们代替以前的LONG类型;BLOG为大二进制类型,用来代替以前的LONG RAW类型;BF

使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj