Pro*C/C++

リリース・ノート

20c

F28421-01(原本部品番号:F15840-01)

2020年2月

このリリース・ノートについて

このドキュメントには、Pro*C/C++リリース20cの重要な情報が記載されています。

次の項目が含まれます。

ドキュメントのアクセシビリティ

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

お客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

互換性および移行の問題

この項では、以前のリリースのPro*C/C++から移行する際の互換性の問題について説明します。

32ビット実装と64ビット実装の間の互換性

32ビット実装と64ビット実装の両方をサポートするプラットフォームでは、64ビット・バイナリとリンクする前に、EXEC SQL INCLUDE文を介してsqlcaをインクルードするアプリケーションを再度プリコンパイルする必要があります。#includeプリプロセッサ文を介してsqlca.hをインクルードするアプリケーションの場合は、64ビット・バイナリと再リンクする前に再コンパイルして、64ビットのsqlca.hをインクルードする必要があります。

将来は、実装間で生成コードの互換性をサポートするために、32ビット・バイナリと64ビット・バイナリの両方をサポートするポートでは、1バージョン、つまり64ビット・バージョンのsqlca.hのみが提供される可能性があります。

Pro*C/C++構成ファイル

Pro*C/C++構成ファイルのprecomp/admin/pcscfg.cfgは、sys_includeオプションの適切なパスを使用して更新する必要があります。このパスは環境変数で指定できます(UNIXシステムの場合は$ORACLE_HOME、Windowsの場合は%ORACLE_HOME%など)。includeオプションも適切に更新する必要があります。

sys_include=($ORACLE_HOME/precomp/public,/usr/include)
<pre>sys_include=/usr/lib/gcc/i386-redhat-linux/4.1.1/include
<pre>include=($ORACLE_HOME/precomp/public)
<pre>include=$ORACLE_HOME/precomp/hdrs

LTYPE=SHORT

LTYPE=SHORTオプションを設定すると、.lisファイルの生成には、プログラム全体がリストされる公開形式ではなく詳細形式が使用されます。

Pro*C/C++ Release 20cの新機能

このリリースの新機能は次のとおりです。

  • C99のサポート

    Pro*C/C++プリコンパイラでは、Cプログラミング用のISO/IEC 9899:1999規格の仕様であるC99標準がサポートされるようになりました。C99構文およびセマンティクスを使用すると、アプリケーション開発者はより豊富な機能を使用できます。

旧リリースの新機能

この項では、以前のリリースのPro*C/C++で導入された新機能を示します。

Pro*C/C++ Release 18c、バージョン18.1の新機能

このリリースの新機能は次のとおりです。

  • Traffic DirectorモードのOracle Connection Managerのサポート

    Traffic DirectorモードのOracle Connection Managerは、高可用性、接続の多重化およびロード・バランシングの向上のために、サポートされているデータベース・クライアントとデータベース・インスタンスの間に配置されるプロキシです。

Pro*C/C++ 12.2製品版の機能

  • 長い識別子(128バイトのオブジェクト長)のサポート。以前のリリースでは、オブジェクトの長さの制限は30バイトでした。

  • Oracle Instant Client - Basic Lightバージョンのサポート

  • 新しいコマンドライン・オプションtrim_password。このオプションにより、パスワード文字列の末尾に空白が含まれていることで発生する認証の問題を防止できます。

  • Pro*C/C++のvc12 (Visual Studio 2013コンパイラ)との互換性。

Pro*C/C++ 12.1製品版の機能

  • 自動増分列のサポート

  • 32Kの列のサポート

  • メモリー指定によるプリフェッチのサポート

  • SQL計画管理(SPM)のサポート

修正された不具合

次の項では、Pro*C/C++で修正された不具合を説明します。説明の後にあるカッコ内の番号は、オラクル社のBugデータベース内のBug番号です。

Pro*C/C++リリース12.2製品で修正された不具合

  • Pro*C/C++は、timezone.pcファイルでcommon_parser=yesが設定されているときに、CSF-S-00000エラーをスローしなくなりました(9531787)

  • Pro*C/C++は、common_parser=yesが設定されているときにSelectリストでバインドが使用されていても、ORA-01008エラーをスローしなくなりました(14127422)

  • Pro*C/C++は、CASE句とTIMESTAMP関数が含まれているINSERT文に対するプリコンパイル時に、オプションUSERIDとcommon_parser=yesが指定されていても、ORA-932エラーをスローしなくなりました(14335958、19473788)

  • Pro*C/C++は、MODE=ANSIを指定していてSQLCODEを宣言していない場合のロールバック時に、SQLSTATEの設定に失敗しなくなりました(5891984)

  • Pro*C/C++は、PIC N変数に"SELECT INTO"文を使用しているときに、ORA-538976288エラーをスローしなくなりました(17189633)

  • Pro*C/C++は、レベル88で初期化された変数を含むプログラムのプリコンパイル時に、PCB-S-00400エラーをスローしなくなりました(20194289)

  • Pro*C/C++は、Solarisプラットフォーム固有のキーワード__threadの解析に失敗しなくなりました(20901503)

  • Oracle Instant ClientのPro*C/C++デモmakefileでは、ユーザーがGCCパスを指定できるようになりました(14591784)

  • Pro*C/C++は、long列からlong変数にデータをフェッチするときに、文字列を切り捨てなくなりました(13589112)

  • Pro*C/C++のNvarchar2オブジェクトは、nvarchar2データ型に正しくマップされるようになりました(11653552)

  • Pro*C/C++は、EXEC SQL OBJECT GET構文でのOCIRaw処理をサポートするようになりました(11653512)

  • Pro*C/C++には、OSDファイルのかわりに汎用のデモ・ファイルが付属するようになり、古い未使用のファイルは付属しなくなりました(9909411)

  • Pro*C/C++は、非常に長い数値の解析を処理するようになりました(9814506)

  • Pro*C/C++は、IS OF句でTYPEトークンを受け入れるようになりました(9535800)

  • Pro*C/C++は、SQL文の単一引用符間にある改行文字を正しく解釈するようになりました(9531904)

  • Pro*C/C++では、N'文字列'を含んでいるSQL文の処理時に発生していたメモリー破損の問題がなくなりました(9531638)

  • Pro*C/C++は、パーサー結合が有効化されているときに、CURSOR WITH HOLDオプションを認識するようになりました(8436316)

  • Pro*C/C++は、正しい「モード」パラメータ値をOCIStmtFetch2()に渡すようになりました(18509872)

  • Pro*C/C++は、列プロパティに割り当てられたメモリーを解放するようになりました(20051833)

  • Pro*C/C++は、表の削除時にORA-942エラーが発生した後で、ORA-1008エラーで停止しなくなりました(20029428)

  • Pro*C/C++は、統合パーサー・モードでCURSOR WITH HOLD構文を解析しているときに、PCC-S-2201エラーをスローしなくなりました(20534275)

  • Pro*C/C++は、common_parser=Noを指定したコンパイル時に、PLS-S-201エラーをスローしなくなりました(20808657)

  • Varchar構造体のLen属性が、行の一括フェッチ中に破損されなくなりました(14013076)

  • Pro*C/C++は、長いファイル名のプリコンパイル時に、セグメンテーション・フォルトをスローしなくなりました(12565588)

Pro*C/C++リリース12.1で修正された不具合

  • outlineおよびcommon_parserの両方をyesに設定してもPro*C/C++パーサーが失敗しなくなりました(12819524)

  • Pro*C/C++では、プリコンパイラ・オプションのcodeをkr_cに設定してもパブリックAPIのANSIプロトタイプが生成されなくなりました(10250555)

  • 11.2へのアップグレード後、XAアプリケーションがクラッシュしなくなりました(10086495)

  • Pro*C/C++デモ作成ファイルから、廃止されたSun SPARCコンパイラ・オプションのdalignが削除されました(9590964)

  • CHAR(5)のVARRARY(5)からのEXEC SQL COLLECTION GETが正しく動作するようになりました(9531014)

  • 64ビット・プラットフォームで、SQLSQLDAAlloc()から無効なディスクリプタ・ハンドルが返されなくなりました(9491931)

  • 11gへのアップグレード後、HP-UXでPro*C/C++がクラッシュしなくなりました(7365514)

既知の不具合

次の項では、Pro*C/C++の既知の不具合を説明します。説明の後にあるカッコ内の番号は、オラクル社のBugデータベース内のBug番号です。

Pro*C/C++リリース12.2の既知の不具合

  • オンライン・モードで、XML表から値を選択する問合せを実行しているときに、ORA-00942エラーがスローされます(9535704)

  • マクロが含まれている埋込みSQL文を実行しているときに、PCC-S-2322エラーがスローされます(9970779)

  • stdbool.hファイルにc99準拠の問題があるため、PCC-S-02201がスローされます(12866048)

  • 複数パスのファイルが正しく組み込まれるように、GCC拡張機能#include_nextの実装を変更する必要があります(21414819)

  • 特定のDDL文が不適切に解析されます(20857434)

  • DDL文"CREATE GLOBAL TEMPORARY TABLE"の解析中に、PCC-S-02201エラーがスローされます(20857400)

  • DDL文"CREATE ROLE"の解析中に、PCC-S-02201エラーがスローされます(20857370)

  • Oracle Social Networkでは、パスワードに含まれる特殊文字"@"がサポートされません(20809065)

サポート

Pro*C/C++のサポートについては、地域のOracleサポート・サービス・センターにご連絡ください。


Pro*C/C++リリース・ノート, 20c

F28421-01

Copyright © 1996, 2020, Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or “commercial computer software documentation” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.The terms governing the U.S. Government’s use of Oracle cloud services are defined by the applicable contract for such services.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Insideは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Epyc、AMDロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。お客様との間に適切な契約が定められている場合を除いて、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。お客様との間に適切な契約が定められている場合を除いて、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。