Oracle Web应用开发之Apache架设与PL/SQL页面设计(3)

日期: 2008-06-19 来源:TechTarget中国

  4.在SIMPLEDAD的编辑页面中,修改Oracle 用户名为cf,Oracle 口令为cf,Oracle 连接字符串为db:1521:o90,如果网关在所连接的数据库以外的其他Oracle主目录中运行,则需要TNS连接字符串。此外,也可使用以下格式的组合字符串来替代TNS连接字符串,即<HOST>:<PORT>:<SID>。<HOST>是运行数据库的主机名,<PORT>是TNS监听程序监听的端口号,<SID>是数据库例程的Oracle SID名称。为了获取最佳性能,请保持网关的数据库连接池处于打开状态。网关使用”文档访问信息”向与此数据库访问描述符关联的数据库上载或下载文档。默认情况下所有文档都将以BLOB类型上载。通过在Long Raw字段中指定以逗号分隔的文件扩展名,可以覆盖此默认设置。此字段的”*”值将使所有文档以Long Raw 数据类型上载。”文档访问过程”指定用于访问文档的虚拟路径。”文档访问过程”字段指定网关处理文档请求所调用的过程。此处都使用缺省值。如果通过此网关连接的应用程序支持将绝对路径映射到关键字,可以指定关键子,本例中此处为空。设置完该页面后返回上级页面。


  Oracle Web应用开发之Apache架设与PL/SQL页面设计图5


  图5


   5.下面设置全局网关。在如图3所示的网关配置菜单中选择”网关全局设置”,如图6所示,将第5步中编辑修改的数据库访问描述符SIMPLEDAD作为默认全局网关的DAD。


   Oracle Web应用开发之Apache架设与PL/SQL页面设计图6


  图6


  编写存储过程和网页代码


  本实例的数据库对象都在cf/cf操作模式下。数据库环境为Oracle9.0.1,带有Oracle HTTP Server安装(已自动安装mod_plsql模块),未安装Oracle9iAS及其任何组件。


  1.建立表student并插入7条记录。







create TABLE student
 (ID  NUMBER(5,0) NOT NULL
 ,NAME  VARchar2(15) NOT NULL
 ,DOB  DATE
 ,GENDER  VARchar2(2) DEFAULT ’男’
 ,CLASSYR  NUMBER(4,0) DEFAULT 2002 NOT NULL
 ,MAJOR  VARchar2(25)
 ,EMAIL  VARchar2(50)
 ,PHOTO  VARchar2(100)
 );
alter session set nls_date_format = ’dd-mon-yyyy’;
alter session set nls_date_language = ’AMERICAN’;
insert into student values ( 1001,’赵鹏’,’14-JUL-1975’,’男’,2001,’History’,
’1001@NetUniversity.org’,’u1001.gif’)
/
insert into student values ( 1002,’刘宇’,’08-OCT-1975’,’女’,2001,’Science’,
’1002@NetUniversity.org’,’u1002.gif’)
/
…………
 
  2.以帐户cf/cf建立存储过程show_student。







create or replace procedure show_student
(p_id         in out student.id%TYPE
,p_name          out student.name%TYPE
,p_dob           out student.dob%TYPE
,p_gender        out student.gender%TYPE
,p_classyr       out student.classyr%TYPE
,p_major         out student.major%TYPE
,p_email         out student.email%TYPE
,p_photo         out student.photo%TYPE
)
IS
CURSOR get_student(p_id in student.id%TYPE DEFAULT 1001) IS
    select * FROM student
    where id = NVL(p_id,1001);
student_row student%ROWTYPE;
BEGIN
    IF p_id<1001 THEN
       p_id:=1001;    
    END IF;
    IF p_id>1007 THEN
       p_id:=1007;
    END IF;
    OPEN  get_student(p_id);
    FETCH get_student INTO student_row;
    CLOSE get_student;
    p_name          := student_row.name;
    p_dob           := student_row.dob;
    p_gender        := student_row.gender;
    p_classyr       := student_row.classyr;
    p_major         := student_row.major;
    p_email         := student_row.email;
    p_photo         := student_row.photo;
END;
/

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐