网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.Fedora Core 3安装Oracle 10.1.0.
.利用Oracle的同意安全机制来控制.
.内置XML能成为oracle的救世主吗?.
.常用的SQL归纳.
.如何在硬碟建置Linux系统之启动虚.
.网格技术的构架、特点及其管理.
.简单提高ORACLE数据库的查询统计.
.Oracle9i 数据库管理实务讲座(五).
.正确的数据库设计确保了数据完整.
.高级复制/物化视图复制中ORA-233.
.Oracle数据库执行计划的一些基本.
.Oracle缓冲区忙等待的识别和解决.
.手工建置档案系统.
.oracle概念和术语.
.Oracle中利用ADO对象实现存取和访.
.抢先体会Oracle 11g的新特性.
.MYSQL到ORACLE程序迁移需要注意的.
.system table.
.建立与Oracle数据库服务器连接的.
.oracle里的常用命令.

关于lob字段的处理(通过modplsql处理blob)

发表日期:2008-2-9



  这是Oracle提供的一个范例,我try了一下,非常好用.
  
  
  代码:--------------------------------------------------------------------------------
  @$oracle_home/rdbms/admin/owaload.sql
  使用ie对oracle http server 中的modpl/sql实施配置
  Database Access Descriptor Name updown
  Schema Name scott
  Oracle User Name scott
  Oracle PassWord scott
  Oracle Connect String <- found in your tnsnames.ora
  Document Table scott.documents
  Document Access Procedure scott.cntsample.download
  
  
  
  CONNECT Samples/Samples
  
  SET DEFINE OFF
  
  CREATE TABLE documents (
   NAME VARCHAR2(256) NOT NULL,
   MIME_TYPE VARCHAR2(128) NULL,
   DOC_SIZE NUMBER NULL,
   DAD_CHARSET VARCHAR2(128) NULL,
   LAST_UPDATED DATE NULL,
   CONTENT_TYPE VARCHAR2(128) NULL,
   CONTENT LONG RAW NULL,
   BLOB_CONTENT BLOB
  )
  /
  
  CREATE TABLE documentspart (
   DOCUMENT VARCHAR2(256),
   PART VARCHAR2(256),
   UPLOADED CHAR(1),
   constraint documentspart_pk primary key( document, part )
  )
  /
  
  CREATE OR REPLACE PACKAGE cntsample IS
   /*
   This package was written by Audun V. Nes (anes@dk.oracle.com).
   The intention of this sample is to show the File Upload/Download
   capabilities of the PL/SQL gateway shipped with iAS.
   Last updated 24th of May 2000.
   */
   PROCEDURE startup;
   PROCEDURE menu;
   PROCEDURE dummy;
   PROCEDURE upload_form;
   PROCEDURE upload(name IN owa.vc_arr);
   PROCEDURE download_form;
   PROCEDURE download(p_file IN VARCHAR2);
   PROCEDURE remove_form;
   PROCEDURE remove(p_file IN owa.vc_arr);
  END;
  /
  
  CREATE OR REPLACE PACKAGE BODY cntsample IS
  
  PROCEDURE startup IS
  BEGIN
   -- This procedure only creates a simple frameset.
   htp.HtmlOpen;
   htp.framesetOpen(crows => '72,*');
   htp.frame(csrc => 'cntsample.menu', cname => 'frame1', cscrolling => 'NO');
   htp.framesetOpen(ccols => '40%,*');
   htp.frame(csrc => 'cntsample.dummy', cname => 'frame2', cscrolling => 'NO');
   htp.frame(csrc => 'cntsample.dummy', cname => 'frame3', cscrolling => 'AUTO');
   htp.framesetClose;
   htp.framesetClose;
   htp.htmlClose;
  EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
  END;
  
  PROCEDURE menu IS
  BEGIN
   -- This procedure creates a simple menu from which the end user can make his choice.
   htp.htmlOpen;
   htp.bodyOpen(cattributes => 'TEXT="#FFFFFF" LINK="#FFFFFF" ALINK="#FFFFFF" VLINK="#FFFFFF"');
   htp.tableOpen(cattributes => 'BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BGCOLOR="#666699"');
   htp.tableRowOpen;
   htp.tableData(htf.img(curl => '/images/wwcban.jpg'));
   htp.tableData(htf.fontOpen('#FFFFFF', 'arial,helvetica','+2')'Content Table Sample'htf.fontClose);
   htp.tableData(htf.anchor2(curl => 'cntsample.upload_form', ctext => 'Upload File(s)', ctarget => 'frame2'));
   htp.tableData(htf.anchor2(curl => 'cntsample.download_form', ctext => 'Download File(s)', ctarget => 'frame2'));
   htp.tableData(htf.anchor2(curl => 'cntsample.remove_form', ctext => 'Remove File(s)', ctarget => 'frame3'));
   htp.tableData(htf.anchor2(curl => 'owa_util.showsource?
cname='owa_util.get_procedure, ctext => 'View Source
  Code', ctarget => 'frame3'));
   htp.tableRowClose;
   htp.tableClose;
   htp.bodyClose;
   htp.htmlClose;
  EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
  END;
  
  PROCEDURE dummy IS
  BEGIN
   -- This procedure shows an empty page with a background image. It is used in the frameset startup.
   htp.htmlOpen;
   htp.bodyOpen(cbackground => '/images/wsd.gif');
   htp.bodyClose;
   htp.htmlClose;
  EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
  END;
  
  PROCEDURE upload_form IS
   BEGIN
   htp.header(3,'Upload a file');
   -- This procedure creates a simple HTML form that lets the end user upload his file(s).
   htp.formOpen(curl => 'cntsample.upload', cmethod => 'POST', cenctype => 'multipart/form-data');
   htp.p('');
   htp.formSubmit;
   htp.formClose;
   htp.para;
   htp.header(3,'Upload multiple files');
   htp.formOpen(curl => 'cntsample.upload', cmethod => 'POST', cenctype => 'multipart/form-data');
   htp.p('');
   htp.br;
   htp.p('');
   htp.br;
   htp.p('');
   htp.br;
   htp.p('');
   htp.br;
   htp.p('');
   htp.br;
   htp.formSubmit;
   htp.formClose;
   EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
   END;
  
   PROCEDURE upload(name IN owa.vc_arr) IS
   /* This procedure can upload both one single file as well as multiple files.
   The actual upload is done by the listener. You simply initialize the process
   by providing the file to be uploaded. */
   i BINARY_INTEGER := 0;
   BEGIN
   LOOP
   i := i + 1;
   IF name(i) IS NOT NULL THEN
   htp.p(name(i)' uploaded');
   htp.br;
   ELSE
   NULL;
   END IF;
   END LOOP;
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
   NULL;
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
   END;
  
   PROCEDURE download_form IS
   -- This procedure shows you which files can be downloaded, and allows you to do so.
   CURSOR c1 IS
   SELECT name FROM documents;
   BEGIN
   htp.htmlOpen;
   htp.bodyOpen;
   FOR l1 IN c1 LOOP
   htp.anchor2(curl => 'cntsample.download?p_file='l1.name, ctext => l1.name, ctarget => 'frame3');
   htp.br;
   END LOOP;
   htp.bodyClose;
   htp.htmlClose;
   EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
   END;
  
   PROCEDURE download(p_file IN VARCHAR2) IS
   BEGIN
   /*
   The actual download is handled by the PL/SQL gateway based on the settings
   in your DAD. The code below simply initialize the process by specifying which file to get.
   */
   wpg_docload.download_file(p_file);

   EXCEPTION
   WHEN OTHERS THEN
   htp.p(sqlerrm);
   RETURN;
   END;
  
  PROCEDURE remove_form IS
  -- This procedure creates an HTML form that lets the end user delete unwanted files.
  CURSOR c1 IS
   SELECT name, mime_type, doc_size, dad_charset, last_updated, content_type FROM documents;
  BEGIN
   htp.header(3,'Select the file(s) to remove');
   htp.formOpen(curl => 'cntsample.remove', cmethod => 'POST');
   htp.tableOpen(cborder => 'BORDER=1');
   FOR l1 IN c1 LOOP
   htp.tableRowOpen;
   htp.tableData(htf.formCheckbox(cname => 'p_file', cvalue => l1.name));
   htp.tableData(l1.name);
   htp.tableData(l1.mime_type);
   htp.tableData(l1.doc_size);
   htp.tableData(l1.dad_charset);
   htp.tableData(l1.last_updated);
   htp.tableData(l1.content_type);
   htp.tableRowClose;
   END LOOP;
   htp.tableClos
上一篇:SQL Server --> Oracle 人气:682
下一篇:静态 SQL语句中的“动态”功能 人气:709
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐