如何登录远程数据库服务器:
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
step one:首先修改tnsnames.ora
(具体路径可能跟我不一样)
windows下修改:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
Linux下
修改后内容如下(以我的linux虚拟机登录windows数据库为例):
# tnsnames.ora Network Configuration File: /home/db/oracle/app/oracle/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
BECDB =
EXTPROC_CONNECTION_DATA =
##这是新增的项
##其中查看SERVICE_NAME过程如下:
##在远程数据库服务器登录sqlplus执行:select instance_name from v$instance;
##其中teleora可以随便命名,是指数据库的命名
##HOST = IPAddress
##IPAddress地址是指远程数据库服务器的地址
##PORT可以随便指定,只要不被占用
teleora =
step two:
tips:记得开启远程数据库的服务
如何编译proc程序
step one:将.pc文件预编译为.c
step two:编译.c文件,生成目标文件
step three:链接目标文件,生成可执行程序
step four:执行文件