Linux-环境下Oracle-PRO-C程序的编写简单范例.doc_第1页
Linux-环境下Oracle-PRO-C程序的编写简单范例.doc_第2页
Linux-环境下Oracle-PRO-C程序的编写简单范例.doc_第3页
Linux-环境下Oracle-PRO-C程序的编写简单范例.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux 环境下PRO*C程序的编写简单范例Oracle 数据库版本 Linux 版本 Red Hat Enterprise AS3环境介绍:oracle 数据库和服务均安装到 linux 主机上一、oracle 用户的环境变量设置如下:oracleguohui6 oracle$ cat .bash_profile# .bash_profile# Get the aliases and functionsif -f /.bashrc ; then . /.bashrcfi# User specific environment and startup programsORACLE_BASE=/mydatafile2/app/oracle; export ORACLE_BASEORACLE_SID=ORCL;export ORACLE_SID#ORACLE_SID=AUXY;export ORACLE_SIDORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1;export ORACLE_HOMEPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;export LD_LIBRARY_PATHNLS_LANG=american_america.ZHS16GBK;export NLS_LANGexport PATHunset USERNAMEoracleguohui6 oracle$二、查看oracle 用户的登录环境:oracleguohui6 oracle$ iduid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)oracleguohui6 oracle$ envREMOTEHOST=HOSTNAME=guohui6SHELL=/bin/bashTERM=vt100HISTSIZE=1000NLS_LANG=american_america.ZHS16GBKQTDIR=/usr/lib/qt-3.1OLDPWD=/home/oracle/backuprestor101/proc_codeUSER=oracleLD_LIBRARY_PATH=/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/lib:/usr/lib:/usr/local/libLS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:ORACLE_SID=ORCLORACLE_BASE=/mydatafile2/app/oracleMAIL=/var/spool/mail/oraclePATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin:/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/binINPUTRC=/etc/inputrcPWD=/home/oracleLANG=en_US.UTF-8LAMHELPFILE=/etc/lam/lam-helpfileSSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpassSHLVL=1HOME=/home/oracleLOGNAME=oracleLESSOPEN=|/usr/bin/lesspipe.sh %sORACLE_HOME=/mydatafile2/app/oracle/oracle/product/10.2.0/db_1G_BROKEN_FILENAMES=1_=/bin/envoracleguohui6 oracle$注意:LD_LIBRARY_PATH 变量的设置,PATH环境变量的设置PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/oracle/bin:/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/binLD_LIBRARY_PATH=/mydatafile2/app/oracle/oracle/product/10.2.0/db_1/lib:/usr/lib:/usr/local/lib如果设置得不对,将无法正确的调用 proc 预编译工具,也无法正确的链接 proc 预编译需要使用的头文件。确保数据库连接和tnsnames.ora,listener.ora 文件的正确配置。(这里就不再多说了!)代码 oracleguohui6 oracle$ sqlplus scott/tigerorclSQL*Plus: Release .0 - Production on Mon Jul 5 01:16:36 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release .0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL我们将用 scott用户对数据库进行连接并查找表里面的数据。代码 main.pc 如下代码 #include #include #include #include int main(int argc,char* argv) EXEC SQL BEGIN DECLARE SECTION; char *uid = scott/tigerORCL; long userid=0; char username51=; EXEC SQL VAR username IS STRING(51); EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :uid; if(sqlca.sqlcode = 0) printf(connect sucess!n); else printf(connect fail!n); EXEC SQL DECLARE cur_user CURSOR FOR SELECT DEPTNO, DNAME FROM DEPT; EXEC SQL OPEN cur_user; while(1) userid=0; strcpy(username,); EXEC SQL FETCH cur_user INTO :userid, :username; if( sqlca.sqlcode = 1403) break; printf(userid=%ld,username=%sn,userid,username); EXEC SQL CLOSE cur_user; / EXEC SQL COMMIT WORK RELEASE; EXEC SQL ROLLBACK WORK RELEASE; return 0;这里用 scott 用户对数据库发起连接,并查询 dept 表中的数据并打印出来。第一步:预编译代码 oracleguohui6 proc_code$ proc main.pcPro*C/C+: Release .0 - Production on Mon Jul 5 01:27:37 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.System default option values taken from: /mydatafile2/app/oracle/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfgoracleguohui6 proc_code$第二步:编译预编译生成的文件 main.coracleguohui6 proc_code$ gcc -o tespproc main.c -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -lclntshoracleguohui6 proc_code$ 测试执行代码 oracleguohui6 proc_code$ ./tespprocconnect sucess!userid=50,username=SUPPORTuserid=10,username=ACCOUNTINGuserid=20,username=RESEARCHuserid=30,usern

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论