sqlplus中怎么插入blob数据

sqlplus中怎么插入blob数据,第1张

在internal这个用户下给scott用户授权如下:

SQL>grant create any directory to scott

SQL>grant create any library to scott

在scott这个用户下执行下述语句:

SQL>create table bfile_tab (bfile_column BFILE)

SQL>create table utl_lob_test (blob_column BLOB)

SQL>create or replace directory utllobdir as 'C:\DDS\EXTPROC'

SQL>set serveroutput on

然后执行下面语句就将C:\DDS\EXTPROC目录下的word文件COM.doc存入到utl_lob_test

表中的blob_column字段中了。

declare

a_blob BLOB

a_bfile BFILE := BFILENAME('UTLLOBDIR','COM.doc')--用来指向外部 *** 作系统

文件

begin

insert into bfile_tab values (a_bfile)

returning bfile_column into a_bfile

insert into utl_lob_test values (empty_blob())

returning blob_column into a_blob

dbms_lob.fileopen(a_bfile)

dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile))

dbms_lob.fileclose(a_bfile)

commit

end

/

SQL>show errors

此时可以使用DBMS_LOB包的getlength这个procedure来检测是否已经将该word文件存入

到blob字段中了。如:

SQL>select dbms_lob.getlength(blob_column) from UTL_LOB_TEST

结果如下:

DBMS_LOB.GETLENGTH(BLOB_COLUMN)

-------------------------------

SQL>create table a (a varchar(30),b float default 155)

表已创建。

SQL>select * from a

未选定行

SQL>insert into a values('aa',default)

已创建 1 行。

SQL>select * from a

A B

------------------------------ ----------

aa155

在我们使用float类型字段的时候会涉及到一定的精度问题,这个精度甚至会影响到整数,具体的设置方法你可以上网查一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11429817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存