【转】ORACLE BLOB BFILE 文件的录入及读取
如果你接触过mysql的话一定对mysql的text和blob不会陌生,在mysql中是直接操作text和blob的。但是在oracle中,它把lob做为一种特殊的字段,不能直接进行操作--比如不能直接插入到lob字段中,也不能用like查询等等。
这里是我保存的一篇这方面的文章,原文搬过来,由于保存的时候只是取了一部分,没头没尾的,所以没法找到原来的出处。
不能直接用INSERT语句向LOB字段中插入值。一般情况下,有如下的几步:
1 先分析一个INSERT语句,返回一个LOB的描述符
2 用OCI函数生成一个本地的LOB对象
3 将LOB对象绑定到LOB描述符上
4 执行INSERT语句
5 给LOB对象赋值
6 释放LOB对象和SQL语句句柄
下面的这个例子是把用户上传的图片文件存放到BLOB(或BFILE中,操作稍有不同)中。
首先要建一个表,结构如下:
CREATE TABLE PICTURES (
ID NUMBER,
DESCRIPTION VARCHAR2(100),
MIME VARCHAR2(128),
PICTURE BLOB
);
如果要实现ID的自动增加,再建一个SEQUENCE:
CREATE SEQUENCE PIC_SEQ;
然后是用来处理数据的PHP程序代码。
//建立Oracle数据库连接
$conn = OCILogon($user, $password, $SID);
//提交SQL语句给Oracle
//在这里要注意的两点:一是用EMPTY_BLOB()函数。这是Oracle的内部函数,返回一个LOB的定位符。在插入LOB时,只能用这个办法先生成一个空的LOB定位符,然后对这个定位符进行操作。EMPTY_BLOB()函数是针对BLO
相关文档:
虽然学习Java很久了,自己也连接过一些数据库,比如mysql之类的,如今呢,也学习了一段时间的Oracle,然而呢,今天是我第一次连接Oracle,嘿嘿,应该还不算太迟吧。
今天呢,有点笨拙,大家莫笑!
我这是一个查询例子
首先,� ......
--名词说明:源——被同步的数据库
目的——要同步到的数据库
前6步必须执行,第6以后是一些辅助信息.
--1、在目的数据库上,创建dblink
drop public database link dblink_orc92_182;
Create public DATABASE LINK dbl ......
参数
UNDO_MANAGEMENT = AUTO --管理模式,可为AUTO或MANUAL.只能在启始参数文件里面修改
UNDO_TABLESPACE = undo --制定存储还原数据的表空间,亦可用ALTER SYSTEM SET undo_tablespace = 'abc'来� ......
在大多数时候我们在设计程序的时候都遵循下面的步骤:
1、打开游标
2、开始循环
3、从游标中取值
那一行被返回
5、处理
6、关闭循环
7、关闭游标
可以简单的把这一类代码称为游标用于循环。但还有一种循环与这种类型不相同,这就是FOR循环,用于FOR循环的游标按照正常的声明方式声明,它的优� ......
安装Oracle后,更改Windows计算机名,导致部分Oracle第三方工具,如:PLSQL
Developer无法登陆,并提示ORA-12541:TNS:no listener或ORA-12547:TNS:丢失联系等错误信息的解决方法。
答:从Oracle的错误提示来看,是说TNS:no listener
,估计是某种服务没有启动,打开windows管理工具->服务,一看,有一个Oracle ......