- gcc -fPIC -c LibDialPlan.cpp
- gcc -shared -o libDialPlan.so LibDialPlan.o -lstdc++
修改Oracle TNS文件和監聽文件。
不清楚大家直接拷貝是否可用。如果有問題,請注意一下等號以及括號兩邊的空格。
tnsnames.ora
listener.ora
- ORADB =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.69.166)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = oradb)
- )
- )
- EXTPROC_CONNECTION_DATA=
- (DESCRIPTION=
- (ADDRESS_LIST=
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
- )
- (CONNECT_DATA=
- (SID = PLSExtProc)
- (PRESENTATION = RO)
- )
- )
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.69.166)(PORT = 1521))
- )
- )
- ADR_BASE_LISTENER = /home/oracle/db/app
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (GLOBAL_DBNAME = oradb)
- (SID_NAME = oradb)
- )
- (SID_DESC=
- (SID_NAME = PLSExtProc)
- (ORACLE_HOME = /opt/local/oracle/app/product/11.2.0/dbhome_2)
- (ENVS = EXTPROC_DLLS=ANY)
- (PROGRAM = extproc)
- )
- )
創建Oraclelibrary 對象
- [root@localhost admin]# lsnrctl status
- LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-AUG-2016 19:33:50
- Copyright (c) 1991, 2009, Oracle. All rights reserved.
- Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
- STATUS of the LISTENER
- ------------------------
- Alias LISTENER
- Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
- Start Date 04-AUG-2016 16:23:54
- Uptime 0 days 3 hr. 9 min. 55 sec
- Trace Level off
- Security ON: Local OS Authentication
- SNMP OFF
- Listener Parameter File /opt/local/oracle/app/product/11.2.0/dbhome_2/network/admin/listener.ora
- Listener Log File /opt/local/oracle/app/product/11.2.0/dbhome_2/network/log/listener.log
- Listening Endpoints Summary...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.69.166)(PORT=1521)))
- Services Summary...
- Service "PLSExtProc" has 1 instance(s).
- Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
- Service "oradb" has 1 instance(s).
- Instance "oradb", status UNKNOWN, has 1 handler(s) for this service...
- The command completed successfully
- [root@localhost admin]#
創建函數
- create or replace library hytpdtbilldb.Fun_Ext_Proc
- as '/opt/local/Oracle_install/Oracle_Call_External_C/libDialPlan.so';
- create or replace function hytpdtbilldb.Air2Gsi
- (x binary_integer,y varchar2)
- return varchar2
- as
- language C
- library hytpdtbilldb.Fun_Ext_Proc
- name "Air2Gsi";
- /