编译Proc程序 登录远程数据库服务器//转

 如何登录远程数据库服务器:
step one:首先修改tnsnames.ora
(具体路径可能跟我不一样)
windows下修改:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
Linux下  修改:/home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora

修改后内容如下(以我的linux虚拟机登录windows数据库为例):
# tnsnames.ora Network Configuration File: /home/db/oracle/app/oracle/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

BECDB =
  (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
      )
      (CONNECT_DATA =
          (SERVICE_NAME = becdb)
      )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
      )
  )
##这是新增的项
##其中查看SERVICE_NAME过程如下:
##在远程数据库服务器登录sqlplus执行:select instance_name from v$instance;
##其中teleora可以随便命名,是指数据库的命名
##HOST = IPAddress
##IPAddress地址是指远程数据库服务器的地址
##PORT可以随便指定,只要不被占用
teleora =
  (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
      )
      (CONNECT_DATA =
          (SERVICE_NAME = zhang)
      )
  )

step two:
  在proc文件中的链接数据库的语句增加USING :"teleora" 关键字。其中"teleora"可以使用字符串变量替代
 
  EXEC SQL CONNECT :username IDENTIFIED BY :password USING :"teleora";
 
tips:记得开启远程数据库的服务 
如何编译proc程序
step one:将.pc文件预编译为.c
      [ecif@localhost zyctest]$ proc sample1.pc
      显示信息:
      Pro*C/C++: Release 10.2.0.1.0 - Production on Tue Apr 13 14:07:05 2010
      Copyright (c) 1982, 2005, Oracle.  All rights reserved.
      System default option values taken from: /home/oracle/oracle/product/10.2.0/db_1/precomp/admin /pcscfg.cfg

step two:编译.c文件,生成目标文件
      gcc -L$ORACLE_HOME/precomp/public -I/home/oracle/oracle/product/10.2.0/db_1/precomp    /public/ -c sample1.c



      提示警告:
      sample1.c: In function `main':
      sample1.c:236: warning: return type of 'main' is not `int'

step three:链接目标文件,生成可执行程序
    gcc -L$ORACLE_HOME/lib -lclntsh -o sample1 sample1.o
      警告:
      sample1.o(.text+0x381): In function `main':
      : warning: the `gets' function is dangerous and should not be used.

step four:执行文件

      ./sample1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值