存储一个文档或一幅图片 在项目开发过程中经常要需要存储一个文档或一幅图片,请问怎样实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.存文件路径2.存blob一般我用第1种。 SQL> conn sys as sysdba输入口令: ***已连接。SQL> create or replace directory pic_dir as 'D:\pic' 2 /目录已创建。SQL> grant read,write on directory pic_dir to scott 2 /授权成功。SQL> create table tb_pic(id varchar2(10),images blob) 2 /表已创建。SQL> edi已写入 file afiedt.buf 1 create or replace procedure proc_pic(v_id varchar2,filename varchar2) 2 as 3 f_lob bfile; 4 b_lob blob; 5 begin 6 insert into tb_pic values(v_id,empty_blob()) return images into b_lob; 7 f_lob:=bfilename('PIC_DIR',FILENAME); 8 dbms_lob.fileopen(f_lob,dbms_lob.file_readonly); 9 dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob)); 10 dbms_lob.fileclose(f_lob); 11 commit; 12* end;SQL> /过程已创建。SQL> exec proc_pic('tp1','tp1.jpg')PL/SQL 过程已成功完成。 create or replace procedure proc_pic(v_id varchar2,filename varchar2) 2 as 3 f_lob bfile; 4 b_lob blob; 5 begin 6 insert into tb_pic values(v_id,empty_blob()) return images into b_lob; 7 f_lob:=bfilename('PIC_DIR',FILENAME); 8 dbms_lob.fileopen(f_lob,dbms_lob.file_readonly); 9 dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob)); 10 dbms_lob.fileclose(f_lob); 11 commit; 12* end;这段编译会出错啊,错误是编译有错。 SQL> call IMG_INSERT('1','f_TEST.jpg'); call IMG_INSERT('1','f_TEST.jpg') ORA-22288: 文件或 LOB 操作FILEOPEN失败系统找不到指定的文件。ORA-06512: 在 "SYS.DBMS_LOB", line 523ORA-06512: 在 "SYS.IMG_INSERT", line 8 这是什么原因呢? 试下绝对路径SQL> exec proc_pic('tp1','D:\tp1.jpg') 在线等 !!!!oracle 执行alter tablespaces 被中断的后果 请教高手:like '%AAA%'如何加快查询速度?? between and 的问题 帮忙解释下这个sql语句 急求双机安装9i 请教一个关于三个表的SQL更新语句怎么写 大家帮忙看看下面的触发器哪里有问题? oracle9在linux9上的安装问题 oracle 7.3.2 表空间问题?错误提示:ora-01653 win2000server上安装oracle816nt,不能按? 对dbms_sql包一些疑惑 oracle 的 select if else 语句怎么写?
2.存blob一般我用第1种。
SQL> conn sys as sysdba
输入口令: ***
已连接。
SQL> create or replace directory pic_dir as 'D:\pic'
2 /目录已创建。
SQL> grant read,write on directory pic_dir to scott
2 /授权成功。SQL> create table tb_pic(id varchar2(10),images blob)
2 /表已创建。SQL> edi
已写入 file afiedt.buf 1 create or replace procedure proc_pic(v_id varchar2,filename varchar2)
2 as
3 f_lob bfile;
4 b_lob blob;
5 begin
6 insert into tb_pic values(v_id,empty_blob()) return images into b_lob;
7 f_lob:=bfilename('PIC_DIR',FILENAME);
8 dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);
9 dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));
10 dbms_lob.fileclose(f_lob);
11 commit;
12* end;
SQL> /过程已创建。SQL> exec proc_pic('tp1','tp1.jpg')PL/SQL 过程已成功完成。
2 as
3 f_lob bfile;
4 b_lob blob;
5 begin
6 insert into tb_pic values(v_id,empty_blob()) return images into b_lob;
7 f_lob:=bfilename('PIC_DIR',FILENAME);
8 dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);
9 dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));
10 dbms_lob.fileclose(f_lob);
11 commit;
12* end;这段编译会出错啊,错误是编译有错。
call IMG_INSERT('1','f_TEST.jpg')
ORA-22288: 文件或 LOB 操作FILEOPEN失败
系统找不到指定的文件。
ORA-06512: 在 "SYS.DBMS_LOB", line 523
ORA-06512: 在 "SYS.IMG_INSERT", line 8
这是什么原因呢?
SQL> exec proc_pic('tp1','D:\tp1.jpg')