动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.ORACLE回滚段的概念、用法和规划.
.ORACLE入门之按用户名重建索引的.
.排除Cache影响手动强制刷新Buffe.
.在RHEL 3 的单机上安装oracle9i .
.关于Oracle 9i 跳跃式索引扫描(I.
.打开Oracle某数据文件损坏后的数.
.ORACLE DATE和TIMESTAMP数据类型.
.从MySQL到ORACLE程序迁移的注意事.
.基于 Linux 和 MiniGUI 的嵌入式.
.cube子句的用法.
.Oracle 9i在redhat linux as 2.1.
.Oracle调优与深入之灌水篇.
.Oracle OCCI的一个简单的包装类的.
.文档化数据库项目以捕捉相关信息.
.Oracle中spfile和pfile间区别和联.
.把表里的数据导成insert语句.
.Oracle、IBM、BEA服务器的基准测.
.Oracle复合数据类型(3).
.ArcSDE Oracle的存储配置实战演练.
.Oracle数据库有哪几种启动方式.

Oracle进阶 LOB字段学习

发表日期:2008-2-9 |


--插入bfile create or replace procedure insert_book(filename varchar2) as
 book_file  bfile := NULL;
 bookExists boolean := false;
begin
 book_file  := bfilename('BOOK_TEXT', filename);
 bookExists  := dbms_lob.fileexists(book_file) = 1;
 
 if bookExists then
  insert into my_book_files values ((select count(*) from my_book_files) + 1 , book_file);
  dbms_output.put_line('Insert sUCess! file : ' filename);
 else
  dbms_output.put_line('Not exists! file : ' filename);
   end if;
exception
  when dbms_lob.noexist_Directory then
       dbms_output.put_line('Error: ' sqlerrm); 
  when dbms_lob.invalid_directory then
       dbms_output.put_line('Error : ' sqlerrm);
  when others then
       dbms_output.put_line('Unkown Error : ' sqlerrm);      
end insert_book;
/
  create or replace procedure insertPDF(fileName varchar2) is
        fileLoc bfile;
        nID number;
        nPDFSize integer;
        bFileExists boolean := false;
begin
     fileLoc := bfilename('PDFDIR',filename);
     bFileExists := dbms_lob.fileexists(fileLoc) = 1;
     if bFileExists = false then
        dbms_output.put_line(fileName ' not exists');
        return;
     end if;
    
     nPDFSize := dbms_lob.getlength(fileLoc);
     dbms_output.put_line('the length of ' fileName ' is ' nPDFSize);
     select count(*) + 1 into nID from PDFTable;
     insert into PDFTable(ID,Pdffile)
            values (nID, fileLoc);
exception
  when dbms_lob.noexist_directory then
       dbms_output.put_line('Error: ' sqlerrm); 
  when dbms_lob.invalid_directory then
       dbms_output.put_line('Error : ' sqlerrm);
  when others then
       dbms_output.put_line('Unkown Error : ' sqlerrm);
end;      
/
  --插入 blob CREATE OR REPLACE procedure insertImg(imgName varchar2) is
        v_file_loc bfile;
        v_image blob;
        nID number;
        nImgSize integer;
 bFileExists boolean := false;
begin
      v_file_loc := bfilename('IMAGEDIR', imgName);
      bFileExists := dbms_lob.fileExists(v_file_loc) = 1;
      if bFileExists = false then
       dbms_output.put_line(imgName ' not exists');
       return;
      end if;       nImgSize := dbms_lob.getlength(v_file_loc);
      dbms_output.put_line(imgName ' size is ' nImgSize);
      dbms_output.put_line('Now Inserting empty image row');       select count(*) + 1 into nID from imagetable;
      insert into imagetable(ID, image)
             values (nID, empty_blob)
             returning image into v_image;       DBMS_LOB.FILEOPEN (v_file_loc);
      dbms_output.put_line('Open file');
      dbms_lob.loadfromfile(v_image, v_file_loc, nImgSize);
      DBMS_LOB.FILECLOSE(v_file_loc);
      commit;
exception
          when others then
               dbms_output.put_line('Error happen! ' sqlerrm);
        DBMS_LOB.FILECLOSE(v_file_loc);
end insertImg;
/
--================================================= SQL> create table view_sites_info (
  2   site_id  number(3),
  3   audio  blob default empty_blob(),
  4   document clob default empty_clob(),
  5   video_file  bfile default null
  6  ); 表已创建。 SQL> commit; 提交完成。
SQL> @e:\writelob PL/SQL 过程已成功完成。 SQL> desc view_sites_info;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 SITE_ID                                            NUMBER(3)
 AUDIO                                              BLOB
 DOCUMENT                                           CLOB
 VIDEO_FILE                                         BINARY FILE LOB
SQL> select document from view_sites_info where site_id = 100; DOCUMENT                                                                       
--------------------------------------------------------------------------------
This is a writing example                                                      
SQL> desc view_sites_info
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 SITE_ID                                            NUMBER(3)
 AUDIO                                              BLOB
 DOCUMENT                                           CLOB
 VIDEO_FILE                                         BINARY FILE LOB SQL> insert into bloBTest values (1, bfilename('tempdir', 'C:\Documents and Settings\Administrator\My Documents\My Pictures\tu1.jpg'));
insert into blobtest values (1, bfilename('tempdir', 'C:\Documents and Settings\Administrator\My Documents\My Pictures\tu1.jpg'))
                                *
ERROR 位于第 1 行:
ORA-00932: 数据类型不一致

SQL> desc BFILETEST
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(3)
 FNAME                                              BINARY FILE LOB SQL> insert into BFILETEST values (1, bfilename('tempdir', 'C:\Documents and Settings\Administrator\My Documents\My Pictures\tu1.jpg')); 已创建 1 行。
SQL> get E:\insertimg
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;
SQL> r
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;     SQL> create table IMAGE_LOB  (T_ID  varchar2(5) not null, T_IMAGE blob not null );
表已创建。 SQL> commit; 提交完成。 SQL> get E:\insertimg
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end;
SQL> r
  1  create or replace procedure img_insert (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  8   F_LOB := bfilename('images', filename);
  9   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 10   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 11   dbms_lob.fileclose(F_LOB);
 12   commit;
 13* end; 过程已创建。 SQL> commit; 提交完成。
SQL> commit; 提交完成。 SQL> $cls SQL> @e:\insertimg 过程已创建。 SQL> commit; 提交完成。 SQL>  exec img_insert('1', 'e:\tu1.jpg'); PL/SQL 过程已成功完成。 SQL> @e:\insertimg 过程已创建。 SQL> exec img_insert('2', 'e:\tu2.jpg'); PL/SQL 过程已成功完成。 SQL> select count(*) from image_lob;   COUNT(*)                                                                     
----------                                                                     
         3                                                                     
SQL> @e:\insertimg 过程已创建。
PL/SQL 过程已成功完成。 SQL> @e:\insertimg 过程已创建。 PL/SQL 过程已成功完成。 SQL> @e:\insertimg 过程已创建。
PL/SQL 过程已成功完成。 SQL> @e:\insertimg 过程已创建。   PL/SQL 过程已成功完成。 SQL> get e:\insertimg
  1  create or replace procedure "img_insert" (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   dbms_output.put_line('Now begin');
  8   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  9   F_LOB := bfilename('IMAGES', filename);
 10   dbms_output.put_line('Open success');
 11   dbms_output.put_line('Now open :' filename);
 12   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 13   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 14   dbms_lob.fileclose(F_LOB);
 15   commit;
 16  EXCEPTION
 17   when others
 18   then
 19     DBMS_OUTPUT.PUT_LINE('OTHERS Exception ' sqlerrm );
 20* end;
 21  / 过程已创建。 SQL> r
  1  create or replace procedure "img_insert" (
  2     tid   varchar2,
  3     filename  varchar2) as
  4     F_LOB   BFILE;
  5     B_LOB  BLOB;
  6  begin
  7   dbms_output.put_line('Now begin');
  8   insert into image_lob (t_id, t_image) values (tid, empty_blob()) return t_image into B_LOB;
  9   F_LOB := bfilename('IMAGES', filename);
 10   dbms_output.put_line('Open success');
 11   dbms_output.put_line('Now open :' filename);
 12   dbms_lob.fileopen(F_LOB, dbms_lob.file_readonly);
 13   dbms_lob.loadfromfile(B_LOB, F_LOB, dbms_lob.getlength(F_LOB));
 14   dbms_lob.fileclose(F_LOB);
 15   commit;
 16  EXCEPTION
 17   when others
 18   then
 19     DBMS_OUTPUT.PUT_LINE('OTHERS Exception ' sqlerrm );
 20* end;  
SQL> select table_name from user_tables;
TABLE_NAME                                                                     
------------------------------                                                 
ANYDATATAB                                                                     
BFILETEST                                                                      
BLOBTEST                                                                       
BONUS                                                                          
DEPT                                                                           
EMP                                                                            
IMAGE_LOB                                                                      
LINEITEM_CV                                                                    
LINEITEM_DP                                                                    
SALGRADE                                                                       
TAB2                                                                           
TABLE_NAME                                                                     
------------------------------                                                 
TEST                                                                           
TEST2                                                                          
VIEW_SITES_INFO                                                                 已选择14行。
上一篇:从MySQL中导出XLS数据库工具 人气:429
下一篇:PL/SQL构建代码分析工具之创建高水平的设计 人气:377
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵