リンクエラー(LNK2019)の原因は、プログラム中で使用しているサブルーチンまたはファンクションが、
リンク時に指定しているオブジェクトおよびライブラリの中に存在していないためです。
COBOLソースプログラムに記述されたSQL文をOracle Pro*COBOLが展開すると、SQLADR、SQLBEX、SQLGSSなどのサブルーチンを呼び出すコードを生成するため、Pro*COBOLが提供するモジュールをリンクする必要があります。
対処法としましては、cobコマンド起動時に、必要なOracle Pro*COBOLのライブラリまたはオブジェクトをリンクする
ようにしてください。
cobコマンドでのリンク方法は次のとおりです。
[Windows版]
環境変数LIBでライブラリが存在するフォルダを指定し、ライブラリ名を cob の引数に指定してください。
例) Oracle11gの場合
set ORACLE_HOME=c:\app\administrator\product\11.2.0\client_1
set LIB=%LIB%;%ORACLE_HOME%\precomp\lib
cob -M -CS sample.cob -o sample.exe orasql11.lib …
[Linux版]
-Lオプションでライブラリが存在するディレクトリを指定し、ライブラリ名をcobの引数に指定してください。
例) cob -M -CS sample.cob -o sample.exe -L$ORACLE_HOME/lib $ORACLE_HOME/precomp/lib/cobsqlintf.o -lclntsh
実際のOracle Pro*COBOLのライブラリ名およびその他詳細は、Oracle Pro*COBOLのマニュアルをご覧ください。
COBOLでPro*COBOLと連携する際の注意事項は、以下のCOBOLのマニュアルをご覧ください。
「COBOL プログラミングの手引 21.2 アプリケーション
生成時の注意」
【確認済みのバージョン】V1
【カテゴリー】トラブルシューティング