Linux下的Oracle编程技术.pdf
《Linux下的Oracle编程技术.pdf》由会员分享,可在线阅读,更多相关《Linux下的Oracle编程技术.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux 下的 Oracle 编程技术李俊平 薛海燕 周光明深圳职业技术学院计算机应用工程系,广东深圳 518055Tearfalls 手打,本文版权归原作者所有摘要:本文探讨了在 Linux 操作系统下用 C 和 Java 语言访问 Oracle 数据库的几种方法,通过实例源代码的形式介绍了 Pro*C、JDBC 和 SQLJ 等关键技术的简单原理以及在 Oracle 数据库编程中的实际应用。关键词:Oracle;Pro*C;JDBC;SQLJ中图分类号:TP39;文献标识码:BProgramming For Oracle On Linux SystemLILILILI Jun-PingJ
2、un-PingJun-PingJun-Ping XueXueXueXue Hai-YanHai-YanHai-YanHai-Yan ZhouZhouZhouZhou Guang-MingGuang-MingGuang-MingGuang-MingAppliedAppliedAppliedApplied ComputerComputerComputerComputer EngineeringEngineeringEngineeringEngineering DepartmentDepartmentDepartmentDepartment ofofofof ShenzhenShenzhenShen
3、zhenShenzhen PolytechnicPolytechnicPolytechnicPolytechnic ShenzhenShenzhenShenzhenShenzhen 518055518055518055518055Abstract:Abstract:Abstract:Abstract:This article discuss several methods of querying Oracle database by using C and Javalanguage on Linux,introduce the technology of Pro*C,JDBC and SQLJ
4、 and its applications in Oracledatabase programming.Keywords:Keywords:Keywords:Keywords:Oracle;Pro*C;JDBC;SQLJ1 引言Oracle 数据库系统功能强大而完善,是在关键业务中运用最为广泛的数据库系统。在 Oracle 数据库系统中,我们一般是利用 PL/SQL 语言编制各种脚本来完成数据库的日常维护、备份、优化等管理工作。但是,由于 PL/SQL 是一种 Oracle 数据库系统内置的脚本语言,所以不能用来开发面向普通用户的应用程序,发布借助其他语言或开发工具。在 Windows 操作系
5、统下,我们可以用 VB、Delphi 等可视化开发工具配合 ODBC 或ADO 等中间件来开发 Oracle 数据库的前端应用程序。那么在 Linux 操作系统下应该用什么语言或开发工具来进行 Oracle 数据库应用的开发呢?本文将介绍人三种方案:Pro*C、JDBC 和 SQLJ。2 环境设置(1)软件设置本文的实验环境是在 Red Hat Linux 8.0 操作系统下,Oracle 8.1.7.0.1 作为数据库环境。Oracle 8i 在 Linux下的安装已经有很多文章谈及,这里只说明一点,就是 Oracle 8i 的典型安装不包括 Pro*C,需要在定制安装方式下将开发工具中的
6、Pro*C 选中。JDK 笔者安装的是 J2SE 1.4.1 For Linux。(2)Oracle 用户的环境变量设置为了方便,本文的操作都是在 Linux 下以 Oracle 用户登录的。在 Oracle 用户的.bash_profile 文件中必须设置 JAVA 环境(Java 主目录)、JDBC 和 SQLJ 的编译和运行环境(Java 相关库的路径)以及搜索路径(Java和 Oracle 目录中的 bin 目录)。(3)建立实验用户和数据建立一个新的 Oracle 用户 test,然后在新用户下建一个记录学生成绩的 student 表,该表很简单,只有三个字段:id、name、sco
7、re。然后向 student 表中添加一些实验数据。3 Pro*C 编程Oracle 的 Pro*C 预编译器是一个可以让你在 C 语言程序中嵌入 SQL 语句的编程工具。Pro*C 预编译器在预编译过程中,将嵌入的 SQL 语句转换成对标准 Oracle 运行库的调用,从而生成预编译过的源代码,然后再进行通常的编译、连接后就可以运行了。Oracle Pro*C预编译器使我们可以在应用程序中使用强大灵活的SQL,通过这个接口,我们就可以在 C 语言程序中直接访问 Oracle 数据库。用 Pro*C 编程分为三步:(1)首先建立后缀名为.pc 的内嵌 SQL 语句的 C 源程序文件:$vi s
8、tu.pc(2)对源程序 stu.pc 进行预编译,生成纯 C 源程序 stu.c$proc PARSE=NONE stu.pc(3)编译该 C 程序,并加入 Oracle 的客户端动态链接库,生成可执行文件 stu$gcc o stu stu.c$ORACLE_HOME/lib/libclntsh.so以下是 stu.pc 的源程序,该程序的功能是根据用户输入的 ID 号,查询 student 表中学生的姓名和成绩。#include EXEC SQL INCLUDE SQLCA;Void main()EXEC SQL BEGIN DECLARE SECTION;/*声明宿主变量*/VARCH
9、AR usr20,pass20,serv20;char name8;int id,score;EXEC SQL END DECLARE SECTION;strcpy(usr.arr,“test”);/*设置连接数据库的用户名、密码和数据库服务名*/usr.len=(unsigned short)strlen(char*)usr.arr);strcpy(pass.arr,“test”);pass.len=(unsigned short)strlen(char*)pass.arr);strcpy(serv.arr,“MyDB”);serv.len=(unsigned short)strlen(ch
10、ar*)serv.arr);EXEC SQL CONNECT:usr IDENTIFIED BY:pass USING:serv;/*连接数据库*/printf(“Connect!n”);printf(“请输入学生代码:”);/*用户输入欲查询的 ID 号*/scanf(“%d”,&id);/*执行动态的 SQL 查询语句*/EXEC SQL SELECT id,name,score into:id,:name,:score from student where id=:id;printf(“Name=%sScore=%d n”,name,score);EXEC SQL COMMIT WORK
11、 RELEASE;/*提交事务并断开与数据库的连接*/printf(“Disconnect!n”);在 Pro*C 中遍历数据表中每一条记录的方法是通过声明游标来实现的,下面的例程 stu2.pc 便是一个使用游标的例子,其功能是显示 student 表中的每一条记录。#include EXEC SQL INCLUDE SQLCA;void main()/*连接数据库的代码同上一个程序,这里略去*/EXEC SQL DECLARE stu_cursor CURSOR FOR/*声明游标*/SELECT id,name,score from student;printf(“DECLARE CUR
12、SOR OK!n”);EXEC SQL OPEN stu_cursor;/*打开游标*/printf(“OPEN CURSOR OK!n”);EXEC SQL WHENEVER NOT FOUND DO break;/*错误处理*/while(1)/*循环访问游标数据*/EXEC SQL FETCH stu_cursor INTO:id,:name,:score;printf(“Id=%dName=%sScore=%d n”,id,name,score);EXEC SQL CLOSE stu_cursor;/*关闭游标*/EXEC SQL COMMIT WORK RELEASE;/*提交事务并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux Oracle 编程 技术
限制150内