» 网友学堂 » Oracle教程 » Oracle数据库开发(二).Linux下配置使用ProC
Oracle数据库开发(二).Linux下配置使用ProC
作者:ljjk5 发表时间:2007-7-9 11:07 阅读:292次 在百度搜索相关内容

一、提要

上文简单介绍了Windows下ProC配置开发,这次我们使用Linux平台再次配置Oracle ProC开发环境(RedHat Linux 9 + Oracle 92)。
《ORACLE数据库开发(一).Windows下配置使用ProC》和《ORACLE数据库开发(二).Linux下配置使用ProC》这两篇文章的目的只是做一些基础介绍,至于Oracle ProC编译参数以及Linux下的ProC Makefile
相关内容,将再后续文章逐步引入。
一言以弊之,先易后难。

二、数据库环境

与Windows下十分类似,首先确认安装了组件,Oracle - Application Development - Pro C-C++ 。安装后会在$ORACLE_HOME/bin生成相应可执行文件,在$ORACLE_HOME/precomp/demo/proc下也会生成一些 makefile文件和示例。

三、示例文件

main.pc
---------------------------------------------------------

#include "sqlca.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void sql_error(char *msg)
{
printf("\n%s %s\n", msg,(char *)sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK RELEASE;
exit(0);
}

int main() {

EXEC SQL INCLUDE sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);
EXEC SQL WHENEVER SQLERROR DO sql_error(" <ERROR> ");

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR oraCN[30];
EXEC SQL END DECLARE SECTION;

strcpy(oraCN.arr,"system/manager@linuxdb");
oraCN.len = strlen(oraCN.arr);
oraCN.arr[oraCN.len]='\0';

EXEC SQL CONNECT :oraCN;
printf("\n [OK Connected!] ");

return 0;

}



代码其实是Windows的原版。


四、编译运行

无需修改任何参数文件,即安装后直接创建main.pc,执行如下命令:

$ proc parse=none iname=main.pc

Pro*C/C++: Release 9.2.0.4.0 - Production on Thu Jun 7 14:17:05 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

System default option values taken from: /home/ora/ora9/oracle/precomp/admin/pcscfg.cfg

$ gcc -g -o main main.c -I/home/ora/ora9/oracle/precomp/public -L/home/ora/ora9/oracle/lib -lclntsh

$ ./main

<ERROR> ORA-12541: TNS:no listener

成功编译运行,这里也可以使用《ProC动态SQL示例(第1,2,3种方法)》一文中的示例,将//注释全部替换为空,即可编译。
http://blog.csdn.net/liwei_cmg/archive/2006/05/29/759963.aspx
不过会有告警提示:
/tmp/ccC7E6qe.o(.text+0xea): In function `db_connect':
/home/ora/develop/src/db.c:385: the `gets' function is dangerous and should not be used.

#Advertisement