カテゴリー:オラクル
2016年8月20日5時24分52秒
オリジナル住所:Oracleの動的な呼び出し外部Cライブラリ関数の 著者:libydwei2007
開発時間を短縮するためにプロジェクトとして、良いコールOracleで外部のCプログラムを開発してきました。
この記事の実際の要約と組み合わせて、オンラインいくつかの記事を検索。私が手助けをしたいです。
参考記事:のhttp://www.cnblogs.com/mathitlin99/archive/2013/09/05/3303717.html
最初の外部のダイナミックライブラリをコンパイル<スパン「=」「> libDialPlan.so
LISTENER.ORA
変更は、リスナーの再起動後:LSNRCTL停止し、起動LSNRCTL
モニターのステータスを表示するには、次のモニタ項目を表示される必要があります。 PLSExtProc <スパン「=」「>
Oracleのライブラリのオブジェクトを作成します
機能作成します
)オンラインの記事と同様に、パラメータ1に記載のパラメータを。
私が入社した後、しかし、このパラメータは、コンパイルされていません。除去後の機能の使用には影響しません。
2)数値や文字列BINARY_INTEGER、VARCHAR2型に対応。もともと配列型パラメータにCは本当のOracle列ではなく文字列のみを通じて、必要ありませんが、されています。
3)時折私のテストのコース、で呼ばれている正常な機能に再起動する必要があります。あなたは見てのプロセスを使用することができます。
この記事の実際の要約と組み合わせて、オンラインいくつかの記事を検索。私が手助けをしたいです。
参考記事:のhttp://www.cnblogs.com/mathitlin99/archive/2013/09/05/3303717.html
最初の外部のダイナミックライブラリをコンパイル<スパン「=」「> libDialPlan.so
(クリックしてここに)折り畳まれたり展開
- gccの-fPIC -c LibDialPlan.cpp
- gccの-shared -o libDialPlan.so LibDialPlan.o -lstdc ++
ファイルおよびOracle TNS Listenerのファイルを変更します。
私は直接のコピーが利用可能であるかわかりません。ご質問がある場合は、等号括弧スペースの両側に注意を払ってください。
tnsnames.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 = /ホーム/オラクル/ DB /アプリ
- 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)
- )
- )
変更は、リスナーの再起動後:LSNRCTL停止し、起動LSNRCTL
モニターのステータスを表示するには、次のモニタ項目を表示される必要があります。 PLSExtProc <スパン「=」「>
(クリックしてここに)折り畳まれたり展開
- [ルート@ localhostの管理]#のLSNRCTL状況
- Linux用のLSNRCTL:バージョン11.2.0.1.0 - 生産04 - 8月 - 2016年に午後07時33分50秒
- 著作権(C)1991、2009、Oracleの。全著作権所有。
- (DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521)))に接続
- リスナーのステータス
- ------------------------
- 別名LISTENER
- Linux用のバージョンTNSLSNR:バージョン11.2.0.1.0 - 生産
- 日付を起動04 - 8月 - 2016年16時23分54秒
- 0日3時間を稼働時間。9分。55秒
- トレースレベルオフ
- ローカルOS認証:ONセキュリティ
- SNMP OFF
- リスナーパラメータファイル/opt/local/oracle/app/product/11.2.0/dbhome_2/network/admin/listener.ora
- リスナー・ログ・ファイル・/opt/local/oracle/app/product/11.2.0/dbhome_2/network/log/listener.log
- エンドポイントの概要を聞きます...
- (DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521)))
- (DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.69.166)(PORT = 1521)))
- サービスの概要...
- サービス "PLSExtProcは" 1つのインスタンス(複数可)を持っています。
- インスタンス「PLSExtProc」、ステータスUNKNOWNには、このサービスに対する1件のハンドラ(複数可)を持っています...
- サービス "oradbのは、" 1つのインスタンス(複数可)を持っています。
- インスタンス「oradbの」、ステータスUNKNOWNには、このサービスに対する1件のハンドラ(複数可)を持っています...
- コマンドが正常に完了します
- [ルート@ localhostの管理]#
(クリックしてここに)折り畳まれたり展開
- ライブラリhytpdtbilldb.Fun_Ext_Procを作成したり、交換してください
- '/opt/local/Oracle_install/Oracle_Call_External_C/libDialPlan.so' と;
)オンラインの記事と同様に、パラメータ1に記載のパラメータを。
私が入社した後、しかし、このパラメータは、コンパイルされていません。除去後の機能の使用には影響しません。
2)数値や文字列BINARY_INTEGER、VARCHAR2型に対応。もともと配列型パラメータにCは本当のOracle列ではなく文字列のみを通じて、必要ありませんが、されています。
3)時折私のテストのコース、で呼ばれている正常な機能に再起動する必要があります。あなたは見てのプロセスを使用することができます。
(クリックしてここに)折り畳まれたり展開
- 関数を作成または交換hytpdtbilldb.Air2Gsi
- (XのBINARY_INTEGER、Y VARCHAR2)
- VARCHAR2戻ります
- として
- 言語C
- ライブラリhytpdtbilldb.Fun_Ext_Proc
- 「Air2Gsi」という名前を付けます。
- /