Oracle数据库开发(二).Linux下配置使用ProC

炔近视估

炔近视估

2016-01-29 14:46

Oracle数据库开发(二).Linux下配置使用ProC,Oracle数据库开发(二).Linux下配置使用ProC

草木瓜

一、提要

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com)

    上文简单介绍了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
    ---------------------------------------------------------

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com)

  #include "sqlca.h"
  #include <stdio.h
  #include <string.h
  #include <stdlib.h
  
  void sql_error(char *msg)
  {
  printf("n%s %sn", 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]='';
  
  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.
   
    这个是由于使用了gets函数所致,见gets的man手册:[next]
   
BUGS
       Never use gets().  Because it is impossible to tell without knowing the data in advance how many  characters  gets()  will  read,  and  because gets() will continue to store characters past the end of the buffer, it is extremely dangerous to use.  It has  been  used  to  bre

展开更多 50%)
分享

猜你喜欢

Oracle数据库开发(二).Linux下配置使用ProC

电脑网络
Oracle数据库开发(二).Linux下配置使用ProC

Oracle开发(一).Windows下配置使用ProC

电脑网络
Oracle开发(一).Windows下配置使用ProC

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux下MySQL数据库开发技术

编程语言 网络编程
Linux下MySQL数据库开发技术

Linux下mSQL数据库开发技术

MySQL mysql数据库
Linux下mSQL数据库开发技术

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle数据库监听配置

电脑网络
Oracle数据库监听配置

数据库开发:Oracle学习笔记

编程语言 网络编程
数据库开发:Oracle学习笔记

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

最小化数据传输——在客户端存储数据

最小化数据传输——在客户端存储数据

新手入门 Windows下Oracle安装图解

新手入门 Windows下Oracle安装图解
下拉加载更多内容 ↓