Pro*COBOL 10.1 README
原典情報: $ORACLE_HOME\precomp\doc\pro1x\readme.txt
目次
バージョン10.1から、バージョン1.xのPro*COBOLは、Pro*COBOL 10.1で置き換えられています。
概要
バージョンのマトリックス
V6互換動作のサポート中止
バージョン1.8.52の新機能
バージョン1.8.51の新機能
バージョン1.8.50の新機能
バージョン1.8.25の新機能
バージョン1.8.78の変更点
バージョン1.8.75の変更点
バージョン1.8.52の変更点
バージョン1.8.51の変更点
バージョン1.8.50の変更点
バージョン1.8.27の変更点
バージョン1.8.26の変更点
バージョン1.8.25の変更点
バージョン1.8.2/1.6.26の変更点
バージョン1.7.3/1.6.9の変更点
バージョン1.7.2/1.6.8の不具合修正(抜粋)
バージョン1.6.7以前の不具合修正(抜粋)
PROFORの制限事項
重要
バージョン10.1から、バージョン1.xのPro*COBOLは、Pro*COBOL 10.1で置き換えられています。
概要
バージョン10.1から、プリコンパイラのバージョン1.xセットに含まれているのは、Pro*Fortranのみです。
Pro*Fortranは現在メンテナンス・モードです。重大な欠陥は修正されますが、新機能は追加されません。
バージョンのマトリックス
STATUS RDBMS PRO*FOR
Production 10.1.0.2 1.8.78.0
STATUS RDBMS PRO*COB, PRO*FOR
Production 9.2.0 1.8.77
Beta 9.2.0 1.8.77
Beta 9.0.0 1.8.75
Production 8.1.7 1.8.52
Production 8.1.6 1.8.51
Production 8.1.5 1.8.50
Production 8.0.5 1.8.27
Production 8.0.4 1.8.26
Production 8.0.3 1.8.25
Production 7.3.4 1.8.4
V6互換動作のサポート中止
Oracle7には、Oracle7アプリケーションを開発するアプリケーション開発者がOracle6の動作をエミュレートできるように、バージョン6[V6]互換性フラグが用意されていました。Oracleリリース8.0.3では、すべてのOracle8製品(PL/SQL8、すべてのOracleプリコンパイラ、Oracle8 Oracle Call Interface、SQL*ModuleおよびSQL*Plusなど)でバージョン6互換性フラグのサポートが即時に中止されることを示す警告が表示されます。V6互換性フラグのサポート中止は、あるバージョン・リリースから別のバージョン・リリースへのアップグレード間で下位互換性と動作をサポートするというオラクル社の方針と一貫しています。つまり、Oracle6からOracle7へのアップグレードについてはサポートされますが、複数のバージョン・リリースのアップグレードについてはサポートされません。
特に、V6互換性フラグでは、Oracle7でOracle6の動作の次の側面がエミュレートされていました。
-
文字列リテラルはOracle7では固定長ですが、V6フラグを使用すると可変長として扱われます。
-
PL/SQLローカルchar変数はOracle7では固定長ですが、V6フラグを使用すると可変長として扱われます。
-
SQL関数(USERなど)の戻り値はOracle7では固定長文字列ですが、V6フラグを使用すると可変長文字列として扱われます。
-
インジケータなしでNULLをSELECTまたはFETCHすると、Oracle7ではORA-01405エラーになりますが、V6フラグを使用するとエラーは戻されません。
-
SQLグループ関数は、Oracle7ではFETCH時にコールされますが、V6フラグを使用すると問合せの実行時にコールされます。
-
固定長文字列をDESCRIBEすると、Oracle7ではType=96が戻りますが、V6フラグを使用するとType=1が戻ります。
Oracle8では、V6互換性フラグのサポート中止に伴い、これらの動作のサポートがすべて中止となります。
バージョン1.8.52の新機能
新機能はありません。
バージョン1.8.51の新機能
新機能はありません。
バージョン1.8.50の新機能
新機能はありません。
バージョン1.8.25の新機能
Pro*COBOLでのNCHARデータのサポート
NCHARデータがカーネルにより完全にサポートされるようになりました。以前のリリースのプリコンパイラでは、このデータ型はNLS_LOCALオプションを使用してサポートされていました。新規アプリケーションの場合は、データベース・サポートに依存し、それに従ってプリコンパイル時にNLS_LOCAL=NOに設定することをお薦めします。
注意: 次に示すすべての不具合の説明で、製品名(Pro*COBOL、Pro*FORTRANなど)が記載されていない場合、修正はすべてのPro*バージョン1に適用されます。
バージョン1.8.78の変更点
- 3100988
- 不十分なCUDバッファ・サイズが原因で、一部のプラットフォームでPROFORがクラッシュしました。不十分なCUDバッファ・サイズが原因で、一部のプラットフォームでPROFORがクラッシュしました。
- 2425918
- ホスト変数としてCHARACTER*(*)を使用すると、不正なコードが生成されました。ホスト変数としてCHARACTER*(*)を使用すると、不正なコードが生成されました。これはPRO*FORの制限事項です。
- 2370012
- PROFOR/F90アプリケーションの実行時にコア・ダンプが生成されました。PROFORアプリケーションに対してF90コンパイラを使用すると、(最初の)実行時にコア・ダンプが発生しました。コア・ダンプが発生したのは、SQLBF1のコール時の不整列リテラル値が原因です。
バージョン1.8.75の変更点
- 746347
- 動的SQLメソッド4で、エラーがある列の番号を指す不正なsqlerrd[4]値が生成されました。修正により、sqlerrd[4]に正しい値が割り当てられます。
- 1175132
- INSERTに不要な解析が実行されるためパフォーマンスが低下しました。INSERT文が原因でORA-00001エラーが発生するたびに、INSERT文の再解析がトリガーされ、パフォーマンスが低下します。ORA-01403、ORA-01405およびORA-01406の場合のみ、再解析は実行されませんでした。修正により、解析エラーが発生しないかぎり再解析は実行されません。
- 1416079
- 標識変数がない場合に配列フェッチのパフォーマンスが低下しました。標識変数を使用しない配列フェッチの場合は1行に対してフェッチが実行され、リリース8iではデータのフェッチを目的としたサーバーへのラウンドトリップ回数が増加していました。修正により、FETCHのコール回数がリリース8.0.6と同じになっています。
- 1508116
- SQLMOVが常に引用符付きで生成されました。一部のプラットフォームでは、特定のプロシージャのコールがアポストロフィ(')で囲まれます。ただし、SQLMOVは常に引用符(")で囲まれ、エラーが生成されました。修正により、デフォルトの場合とlitdelim=quoteの場合、SQLMOVは引用符(")で囲まれますが、litdelim=apostの場合、SQLMOVはアポストロフィ(')で囲まれます。
- 1576145
- 不要な定義が原因でリリース8.0に比べてリリース8.1のパフォーマンスが低下しました。ループに1つFETCH文がある場合、リリース8.0に比べてリリース8.1のパフォーマンスが低下しました。これは、すべての反復でホスト変数ごとに不要なDEFINEがコールされるためでした。修正により、すべてのホスト変数が解析され定義された後の同じFETCH文では、次の反復時にはDEFINEがコールされません。
バージョン1.8.52の変更点
- 819158
- PROCOBで不正なコードが生成され、コンパイル・エラーが発生しました。PROCOBで不正なコードが生成され、VARCHAR変数が生成されました。この結果、コンパイル・エラーが生成されました。修正により、適切なインデントを使用した正しいコードが生成されます。
- 968261
- PROCOBでモード=ansiを使用すると不正なコードが生成されました。mode=ansiを使用すると、procobで、一部のコンパイラに対してREDEFINES句およびGLOBAL句が不正に生成されました。修正により、正しいコードが生成されます。
- 973363
- 不正な生成コードによりコンパイル・エラーが生成されました。INTO句でホスト変数としてグループ名(要素の1つにFILLERがあるグループ)を使用すると、PROCOBで不正なコードが生成されました。この不正なコードによりコンパイル・エラーが生成されました。修正により、正しいコードが生成されます。
バージョン1.8.51の変更点
- 936178
- 接続にXAを使用するアプリケーションがRELEASE_CURSOR=YESを指定してプリコンパイルされている場合、メモリー・リークが発生しました。
- 913475
- 複数の接続を使用するアプリケーションで、non-lst connect/diconnectループ内でデータをフェッチすると、「ORA-01002: フェッチ順序が無効です。」というエラーが発生する場合がありました。
- 909020
- 非問合せSQL文を使用するEXEC SQL DESCRIBE SELECT LISTでは、「ORA-24338: 文の処理が実行されません。」という実行時エラーが戻されました。
- 904273
- DESCRIBE BIND VARIABLES文を含む動的メソッド4のアプリケーションで、EXECUTE文のFOR句にホスト配列を使用すると、実行時にコア・ダンプが発生しました。
- 869146
- mode=ansi13を指定してアプリケーションをプリコンパイルすると、procob18で、コミット後にカーソルをクローズするコードが生成され、実行時に「ORA-01001: カーソルが無効です。」が発生しました。
- 821874
- CONNECT時にAT句が使用されるたびに不要なsqlus.msbエラー・ハンドルがオープンされました。修正により、エラーが発生するまでsqlus.msbのオープンは遅延するようになりました。
- 792409
- 長いソース・ファイル名が使用された場合、PROFORで不正なコードが生成されました。DATA SQLFNMは、ソース・ファイル名を使用して生成されます。ファイル名が非常に長く、行をまたいで72列目より後で名前を分割する必要がある場合は、次の行での継続が正しく行われませんでした。修正により、正しいコードが生成されます。
- 791384
- NULLのLOBにLOBを追加するとエラーになります。ただし、SQLLIBから戻されるエラー・メッセージには、この状況が記述されませんでした。
- 772411
- 動的メソッド4のアプリケーションのCLOSE CURSOR文で、実行時にコア・ダンプが生成されました。
- 772048
- Pro*Cobolのプリコンパイル中にコア・ダンプが発生しました。このコア・ダンプを修正するために、適切な条件チェックが適用されるようになりました。
- 720030
- AUTO_CONNECT=YESを指定してプリコンパイルすると、カーソル変数に大きい値が生成されました。
- 716236
- Pro*Forで、SAVE文に対して余分なコードが生成されました。
- 693939
- 文字列型、ANSIの可変文字列型およびANSIの固定文字列型は、ANSI動的プログラムで使用されると空白で埋められませんでした。修正により空白で埋められるようになり、戻される長さフィールドは不定です。
- 650069
- CONFIGオプションで長い構成ファイル名が使用された場合、またはシステムのデフォルトの構成ファイルが長い絶対パス名の場所から使用された場合は、プリコンパイラによってコア・ダンプが生成されました。この修正により、長いファイル名はリスト・ファイルに出力される前に切り捨てられます。
- 638805
- SQL-2113のメッセージ・テキストがVMSに固有であり、汎用化する必要がありました。
バージョン1.8.50の変更点
- 764952
- インジケータの配列も要求した場合、DMLのRETURNING句で列値の配列が正常に戻されませんでした。
- 754066
- 埋込みSQLのDML RETURNING文に3つ以上の列があると誤動作が発生しました。
- 752463
- NCHARホスト変数を使用し、NLS_LOCAL=YESを指定してプリコンパイルした場合、メモリー・リークが発生しました。
- 735298
- EXEC TOOLS GET文に使用されるメモリーが、使用後も解放されませんでした。
- 729969
- procob18で、配列変数のサイズに関係なく、一時標識変数にサイズ1を生成していました。この結果、境界を超えて項目にアクセスする場合などに、メモリー・エラーが発生していました。
- 717698
- インジケータを-1に設定して埋込みPL/SQLを実行すると、メモリー・エラーまたは実行時エラーになりました。
- 709191
- 可変(varchar)型のホスト変数を同値化する型が使用された場合、procob18でコア・ダンプが生成されました。
- 704985
- NLS_LOCAL=YESを使用した場合、2バイト以下の長さを指定したマルチバイト・キャラクタのホスト変数をフェッチできませんでした。
- 652497
- shiftベースのマルチバイト・キャラクタ・セット・アプリケーションに対し、Pro*COBOLで不正なコードが生成されました。
- 644711
- PREPAREまたはEXECUTE IMMEDIATEで引用符なしの文字列を使用した場合、不正なコードが生成されました。文字列内の単語の区切りとして使用されているすべての空白が削除されました。
For example,
EXEC SQL PREPARE S1 FROM
DECLARE
CURSOR C1 IS SELECT 0 FROM DUAL;
BEGIN
FOR R1 IN C1 LOOP
NULL;
END LOOP;
END;
END-EXEC.
generated incorrect code as:
01 SQ0001.
02 FILLER PIC X(68) VALUE "DECLARECURSORC1ISSELECT0FROMDUAL;
- "BEGINFORR1INC1LOOPNULL;ENDLOOP;END;".
which generated runtime errors.
With the fix, following correct code is being generated:
01 SQ0001.
02 FILLER PIC X(82) VALUE "DECLARE CURSOR C1 IS SELECT 0 FRO
- "M DUAL;BEGIN FOR R1 IN C1 LOOP NULL;END LOOP;END;".
- 606918
- 生成されるグループ項目の要素が1行を超えている場合、Pro*COBOLではVARYING変数に対して不正なコードが生成されました。マルチバイト環境では、マルチバイト・キャラクタのバイト間に改行が発生し、コンパイル時エラーになることがあります。
- 602746
- Pro*FORTRANに関するこの不具合は、具体的で明確な情報がいずれのドキュメントにも記載されていないためにレポートされました。Pro*FORTRANによるFORTRANコンパイラの最適化の使用はサポートされていません。FORTRANコンパイラの最適化はオフにしてください。これは実際にはDOCの不具合ですが、新しいPro*FORTRAN DOCは提供されないため、このreadme.txtファイルで明確に記載します。
- 596907
- DECLARE TABLE文を使用した場合、procob18でプリコンパイル時にコア・ダンプが生成されました。
- 563793
- 使用可能なオプションの数と割り当てられた領域の不一致によって、一部のプラットフォームでコア・ダンプが発生していました。使用可能なオプションに対する表エントリ数が修正されました。
- 422430
- Pro*FORTRAN: MVSに対するFortranコンパイラの制限によって、サブスクリプト化変数はINTEGER*4で宣言する必要がありました。SQCNTは、生成済のサブスクリプト化変数で、常にINTEGER*2で宣言されていました。MVSの場合、SQCNTはINTEGER*4で宣言されるようになりました。
- 414298
- EXEC SQL EXECUTE IMMEDIATEの文テキストをホスト変数(EXEC SQL EXECUTE IMMEDIATE :create_as_select;など)で指定すると、sqlca.sqlerrd内で処理済行数が更新されませんでした。sqlca.sqlcodeは、文の実行結果を正確に反映するように更新されました。
バージョン1.8.27の変更点
- 644711
- PREPAREまたはEXECUTE IMMEDIATEで引用符なしの文字列を使用した場合、不正なコードが生成されました。文字列内の単語の区切りとして使用されているすべての空白が削除されました。
For example,
EXEC SQL PREPARE S1 FROM
DECLARE
CURSOR C1 IS SELECT 0 FROM DUAL;
BEGIN
FOR R1 IN C1 LOOP
NULL;
END LOOP;
END;
END-EXEC.
generated incorrect code as:
01 SQ0001.
02 FILLER PIC X(68) VALUE "DECLARECURSORC1ISSELECT0FROMDUAL;
- "BEGINFORR1INC1LOOPNULL;ENDLOOP;END;".
which generated runtime errors.
With the fix, following correct code is being generated:
01 SQ0001.
02 FILLER PIC X(82) VALUE "DECLARE CURSOR C1 IS SELECT 0 FRO
- "M DUAL;BEGIN FOR R1 IN C1 LOOP NULL;END LOOP;END;".
- 642112
- 埋込みSQL CONNECT文を介して接続されていない場合、SQLLIBでORA-01012エラー・メッセージが戻されました。
- 622811
- カーソルのクローズ時にメモリー・リークが発生していました。
- 606918
- 生成されるグループ項目の要素が1行を超えている場合、Pro*COBOLではVARYING変数に対して不正なコードが生成されました。マルチバイト環境では、マルチバイト・キャラクタのバイト間に改行が発生し、コンパイル時エラーになることがあります。
- 602746
- Pro*FORTRANに関するこの不具合は、具体的で明確な情報がいずれのドキュメントにも記載されていないためにレポートされました。Pro*FORTRANによるFORTRANコンパイラの最適化の使用はサポートされていません。FORTRANコンパイラの最適化はオフにしてください。これは実際にはDOCの不具合ですが、新しいPro*FORTRAN DOCは提供されないため、このreadme.txtファイルで明確に記載します。
- 583044
- CALL文のVARCHARホスト変数が正常に拡張されず、COBOLコンパイラの最適化処理により排除されました。
- このため、SQL文が正常に実行されませんでした。
- 553658
- Windows NTプラットフォームでは、プリコンパイラ・オプションnls_charおよびnls_localを使用したアプリケーションでコア・ダンプが発生しました。Windows NTのマルチスレッド化アプリケーションの場合、グローバル・ランタイム・コンテキストは適切なnls_charおよびnls_local情報を取得しないために、コア・ダンプが発生しました。
- 549812
- ファイル名として3つ以上の名前(x x xなど)を指定すると、Pro*でコア・ダンプが発生しました。Pro*はコマンドライン・オプションを処理するときに、入力ファイル名1つと出力ファイル名1つを想定しています。コマンドラインで3つ以上のファイル名を指定でき、適切なエラー・メッセージが表示されるように、Pro*が修正されました。
- 480085
- Pro*COBOL: インクルード・ファイルが存在しない場合にエラー・メッセージが発行されませんでした。インクルードするファイルがいずれかのincludeディレクトリまたはローカル・ディレクトリに存在しない場合は、次のエラー・メッセージが生成されるようになりました。
PCC-S-0013: Unable to open include file "..." at line ...
in file sample.pco
- 422430
- Pro*FORTRAN: MVSに対するFortranコンパイラの制限によって、サブスクリプト化変数はINTEGER*4で宣言する必要がありました。SQCNTは、生成済のサブスクリプト化変数で、常にINTEGER*2で宣言されていました。MVSの場合、SQCNTはINTEGER*4で宣言されるようになりました。
バージョン1.8.26の変更点
変更点はありません。
バージョン1.8.25の変更点
- 480085
- Pro*COBOLで、インクルード・ファイルが存在しない場合にエラー・メッセージが発行されませんでした。
- 397677
- 型を同値化した暗黙的なVARCHARホスト変数に対して、Pro*COBOLで不正なコードが生成されました。この結果、実行時にORA-01465エラーが発生しました。
- 383782
- 列72より後のカーソル宣言に対して、Pro*COBOLでコードが生成される場合がありました。
- 372681
- END-EXECの後がピリオド(.)ではなく空白の場合、Pro*COBOLで不正なコードが生成されました。
- 369874
- VALUE句にホスト変数の値が指定されていない場合、Pro*COBOLで不正なコードが生成されました。次に例を示します。
01 PASSWD PIC X(8) VALUE.
- 369866
- EXEC SQL EXECUTE IMMEDIDATEにLITDELIM=QUOTEを指定すると、デリミタとしてアポストロフィが使用されました。
- 369862
- MAXLITERALに対する不正な値がリスト・ファイルに表示されました。
- 369858
- Pro*COBOLで、LITDELIMオプションのインライン指定が無視されました。
- 366790
- VARCHAR(PIX VARYING)宣言が記述されている行に順序番号があると、Pro*COBOLでセグメンテーション・エラーが発生しました。
- 345014
- FORMAT=TERMINAL指定時に埋込みSQL文が正確に33文字の場合、Pro*COBOLで不正なコードが生成されました。この結果、コンパイル・エラーが発生しました。
- 319845
- 入力ファイル名の長さが100文字を超えた場合、Pro*COBOLでセグメンテーション・エラーが発生しました。ユーザーが指定した入力ファイル名(入力ファイル名のパスを含む)が100文字を超えた場合、100文字の内部制限のためにプリコンパイラでセグメンテーション・エラーが発生しました。
バージョン1.8.2/1.6.26の変更点
- 46734
- EXECUTE文のUSING句の後に構文エラーがあった場合、プリコンパイラではエラー・メッセージを生成していませんでした。プリコンパイル時にエラーは検出されませんでしたが、実行時にエラーが発生しました。
- 63012
- カーソルがクローズしているときにアプリケーションでrelease_cursor=yesを使用しないかぎり、後続のフェッチでエラーは戻されず、データが正常に取得されました。
- 161029
- USAGE IS DISPLAY句がPIC X(n)宣言で使用されていた場合、Pro*Cobolで誤ってエラーが生成されました。
- 228054
- varchar(可変)宣言のユーザーによるインデントがPro*Cobolで保持されませんでした。この拡張によって、生成されたコードでユーザーによるインデントが保持されるようになりました。
- 244692
- CURRENT OF句にスペルミスがあると、Pro*COBOLでセグメンテーション・エラーが発生しました。
- 259033
- 変数名のサイズが長く、インデント幅が広い(ただし20未満)場合、Pro*Fortranで列72より長い行が生成されました。
- 272453
- プリコンパイラのヘルプ画面の内容が多すぎて、sqlcheckの値の構文がわかりづらい状態でした。ヘルプ画面のフォーマットが変更されました。
- 277841
- 接続を確立できなかった場合、sqlcaで一般的なエラー・メッセージが戻されました。これは、たとえば、TWO_TASK環境変数に不正な値が設定されている場合に発生する可能性があります。一般的なエラー・メッセージが戻されるのは、接続を確立できず、メッセージ・ファイルがクライアント側に存在しない場合のみになりました。
- 280423
- Pro*Cobolで不正なPIC X宣言が生成されました。maxliteralを指定すると、PIC X変数のサイズと文字列値の長さの両方が不正になりました。
- 282450
- Pro*Fortranで.pc0ファイルが2回クローズされ、一部のプラットフォームでメモリー例外の問題が発生していました。
- 282466
- 通常の(USING句が指定されていない)EXECUTE文に対して、プリコンパイラによってバインド変数が生成されていました。この問題は、同じ文名がEXECUTE USING文で使用されている場合、次のような通常のEXECUTE文で発生していました。
...
EXEC SQL EXECUTE S USING :a, :b;
...
EXEC SQL EXECUTE S;
...
- 286704
- Pro*Cobolで、変数のサイズとしては大きすぎる非常に大きい値でSQLCTX初期化が生成されていました。SQLCTXは型S9(9)で宣言され、割り当てられる値は10桁でした。
- 286765
- 動的SQLを使用してホスト配列をPL/SQL表にバインドする際、ランタイム・エラーが発生しました。
- 287771
- 切断時に、シャドウ・プロセスが動作したままになり、再接続またはプロセス終了までそのままでした。
- 288212
- 動的メソッド4のバインドおよび選択記述子用にインクルードされたファイルには、64ビット・アーキテクチャ・マシンの変更に固有のポートが必要です。
- 289201
- 非常に大きい(約100,000行を超える)pro*ソース・ファイルから生成されたプリコンパイラ・アプリケーションに対して、ランタイム・エラーが生成されました。
- 291358
- Pro*Cobで、条件付きプリコンパイル文(EXEC ORACLE IFDEF/DEFINE/ELSE/ENDIF)のEND-EXECに"."(ピリオド)がないためにコンパイル時エラーが発生した場合、これらの文がコメント化されませんでした。
- 293284
- Pro*FortranまたはPro*CobolでEXEC TOOLS MESSAGEがコーディング領域(列72)を超えて記述された場合、内部エラー・メッセージが発行されました。
- 297549
- 画面上のエラー・メッセージに、正しくないエラー行(通常は、エラーがある実際の行に続く次の行)が示されていました。この問題が発生するのは、Pro*CobolおよびPro*Fortranのみでした。
- 299716
- 複数の行が、EXEC SQL文、varchar宣言、あるいはEXEC SQL文またはvarchar宣言の後のコメント行に続いた場合、Pro*Cobolでは列7の/(スラッシュ)が*(アスタリスク)に変更されていました。
- 308436
- プリコンパイラで、30文字を超える入力ファイル名を使用できませんでした。この問題は、1.6.8+および1.8ベータ・バージョンに影響しました。
- 308877
- Pro*COBOLで、IDENTICATION DIVISIONのコメント・エントリを適切に処理できませんでした。コメント・エントリにはすべてのASCII文字を使用できます。また、コメント・エントリはIDENTIFICATION DIVISIONでのみ許可されます。
- 309750
- プログラムで動的メソッド4を使用し、かつ接続文と宣言文でデータベースの基本名としてホスト変数を使用した場合、Pro*Fortranでアクセス違反またはコンパイル・エラーの原因となるコードが生成されました。
- 315856
- END文がない場合、Pro*Fortranが無限ループに入りました。
バージョン1.7.3/1.6.9の変更点
- 234550
- Pro*Cobolで、format=terminalで誤った文字列継続が生成されました。
- 264560
- FORMAT=TERMINALを指定したEXEC SQL INCLUDE SQLCAの使用は、COMP5=YESも使用されている場合は動作しませんでした。
- 265143
- Pro*Cobolは、バイトではなく列に基づいて文字列継続を実行しました。このため、行の長さを72列ではなく72バイトに制限しているCOBOLコンパイラで問題が発生しました。
- 275498
- 文に宣言されていないSQL識別子がある場合、プリコンパイラでエラーではなくセグメンテーション・エラーが発生しました。たとえば、"exec sql update emp set sal = 8000 where current of S;"という文で、Sが宣言されたカーソルでない場合、「SQL識別子"%s"が宣言されていません。」エラーではなく、セグメンテーション・エラーが発生しました。
- 277265
- プリコンパイラのホスト・オプション値を言語固有にする必要がありました。
- 278919
- 同じ文識別子を再使用すると、ORA-02117が発生する場合がありました。次の一連の文では、アプリケーションがmode=ansiでプリコンパイルされた場合、ORA-02117エラーが発生しました。
PREPARE s for . . . (e.g. an insert)
EXECUTE s
PREPARE s for select . . .
DECLARE c1 cursor for s
OPEN c1
- 280423
- maxliteralを指定した場合、Pro*Cobolでマルチバイト入力に対して不正なPIC X宣言が生成されました。PIC X変数のサイズと文字列値の長さの両方が不正になりました。
- 286704
- Pro*Cobolで、変数のサイズとしては大きすぎる非常に大きい値でSQLCTX初期化が生成されていました。SQLCTXは型S9(9)で宣言され、割り当てられる値は10桁でした。
- 289201
- 非常に大きい(約100,000行を超える)pro*ソース・ファイルから生成されたプリコンパイラ・アプリケーションに対して、ランタイム・エラーが生成されました。
バージョン1.7.2/1.6.8の不具合修正(抜粋)
- 159536
- PRO*で、FIPS=YESの場合に、CREATE TRIGGER/PROCEDURE/などのFIPSフラグ付けが実行されませんでした。
- 187108
- sample10.pplのエラーによって、VMSプラットフォームでプロセスがクラッシュしました。
- 208483
- PRO*Pascalアプリケーションで文字列リテラルのEXECUTE IMMEDIATEがエラーになりました。
- 227880
- sample10.pcoが64ビット・アーキテクチャで動作するには変更が必要でした。
- 227882
- sample10.pcoが64ビット・アーキテクチャで動作するには変更が必要でした。
- 232998
- EXEC SQLの前のインデントが大きい場合、Pro*Pascal A.V.が発生しました。
- 234392
- Pro*FORTRANでEXECUTE USING DESCRIPTORに対して不正なコードが生成されました。
- 240736
- PREPARE文でホスト変数にLONG VARCHAR型を使用できません。
- 241616
- 多数のSQL文がある場合は、Pro*FORTRANで複数のSQCNT宣言が生成されました。
- 241962
- ソースにEND文がない場合、Pro*Fortranが無限ループに入りました。
- 249976
- ORACA(ORASTXTC)の保存された文テキストが正しくない場合がありました。
- 250474
- 長いSQL文とAUTO_CONNECT=YESの指定で解析エラーが発生しました。
- 252217
- sqlcpr.hのプロトタイプが生成されたコードのプロトタイプと異なりました。
- 252492
- ANSI形式のプロトタイプがパブリック・ヘッダーsqlcpr.hにありませんでした。
- 252654
- PRO*1.6で、SQLCODE変数がDECLARE SECTIONで宣言されていない場合、SQLCODE変数が使用されませんでした。
- 257248
- ソースにENDがない場合、Pro*Fortranが無限ループに入りました。
- 258928
- 関数gensqfをPro*Fortranアプリケーションからコールできませんでした。
- 259349
- ファイル名の長さが最大長を超えている場合にエラーが発生しませんでした。
- 260457
- oracle_forms.messageプロシージャが正常に完了しないことがありました。
- 261282
- プリコンパイラ・コマンドライン・オプションの使用方法が正しくチェックされていませんでした。
- 262332
- パスワードがユーザーIDオプションで指定されていない場合、Pro*でパスワードを要求されませんでした。
- 264068
- EXEC TOOLS文のEXEC SQL IFDEFが正しく動作しませんでした。
- 265136
- マルチバイト環境でmaxlitを指定した場合、Pro*Cobolで不正なSQL文が生成されました。
- 265424
- SQL関数の使用中に誤ったプリコンパイル・エラーが発生する場合がありました。
- 267024
- format=terminalを指定した場合、Pro*FORTRANで、生成されたコードが正しくインデントされませんでした。
- 270254
- オープン・カーソルの数がMaxCurを超えた場合、ORA-02100エラーが生成されました。
バージョン1.6.7以前の不具合修正(抜粋)
- 273548
- code=ansi_cの指定で、不正な型のsqlstm.stmtが生成されます(Pro*C)。
- 256436
- EXEC SQL TYPEでVarcharを指定すると、生成されたコードで長さが0(ゼロ)になります(Pro*C)。
- 240736
- LONG VARCHARホスト変数からの文の準備中にエラー02108が発生します。
- 227634
- 有効なデータベース接続のない状態で実行すると、プログラムでコア・ダンプが発生します。
- 226183
- sqlcheck=fullの指定と宣言されていないホスト変数によって、Pro*Cobolでセグメンテーション・エラーが発生します。
- 224364
- 文が列9で始まる場合は、Pro*Fortranのプリコンパイラで前処理されません。
- 219215
- タイムアウトによる再接続後の再準備/再実行でORA-01012/01001が発生します。
- 217245
- カーソルのオープンに失敗した場合でもカーソルにオープンのマークが付けられました。
- 216274
- multi=noを指定した場合、Pro*Fortranで宣言が生成されませんでした。
- 212820
- ソースの99列目に「A」の文字がある場合は、Pro*Fortranで不正なコードが生成されました。
- 210998
- multisubprog=noを指定し、入力にDECLAREセクションがない場合は、アクセス違反が発生しました。
- 209717
- ホストとインジケータ配列のディメンションが異なる場合でもエラーが発生しませんでした。
- 206153
- ANSIモードの動的SQLに対して、カーソルの状態が正しく保持されませんでした。
- 199380
- COMMIT WORKを含むプログラムで、mode=ansi&hold_cur=yesの場合はORA-02114エラーが発生しました。
- 198808
- 行の終わりに引用符がある場合、不正なコードが生成されました(Pro*Cobol)。
- 192959
- multisub=noを指定してデータベースに再接続した場合、Pro*forでプログラム・エラーが発生しました。
- 191554
- ORACAを使用するPRO*COBターミナル・フォーマットのアプリケーションでコンパイル・エラーが発生しました。
- 189568
- PRO*ランタイム・ライブラリで、データベースに対して必要以上のコールが生成されました。
- 187443
- hold_cursor=yesを指定している場合でも、Pro*AdaでSQL文が常に再解析されました。
- 184461
- LANGUAGE=nationalcharstの場合、PRO*FORで空のCOMMON文が生成されました。
- 183591
- VARCHAR配列へのポインタを使用すると、様々な問題が発生する可能性がありました。
- 168678
- ユーザーIDを指定せずにSQLCHECK=SEMANTICSを使用すると、DECLARE TABLE文が無視されます。
- 149317
- SQLCHECK=FULLの場合でも、プリコンパイラでFETCH文のエラーが無視されました。
- 147034
- 動的カーソルの2回目の実行で、XAアプリケーションでORA-01001が発生しました。
- 135528
- COMMIT/ROLLBACKによるRELEASEが失敗した場合は、再接続しようとすると失敗しました。
PROFORの制限事項
- 2425918
- PROFORでのCHARACTER*(*)の使用方法に関する制限を明確にします。
- PROFOR DOCのマニュアルは既存のライブラリでのみ提供しているため、PROFORマニュアルは今後更新されることはありません。かわりに、このREADMEが更新されます。
- 次の変更に注意してください。
- Pro*Fortranマニュアルの表1-3に記載されているCHARACTER(*)変数型を削除してください。
- 表1-3の注意2は、次のように読み替えてください。
- CHARACTER*(*)変数の長さは事前に決定されていません。これらの変数は、サブルーチン宣言でダミー引数を指定するために使用します。実際の引数の最大長は、LEN組込み関数によって戻されます。CHARACTER*(*)変数は有効なFORTRAN変数名ですが、ホスト変数としてはサポートされていません。