ヘッダーをスキップ
Pro*C/C++リリース・ノート
12cリリース1 (12.1)
B72987-02
 

 

Pro*C/C++

リリース・ノート

12cリリース1 (12.1)

B72987-02(原本部品番号:E18409-05)

2017年1月

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

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

内容は次のとおりです。

ドキュメントのアクセシビリティについて

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

Oracle Supportへのアクセス

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++ 12.1製品版の機能

  • 自動増分列のサポート

  • 32Kの列のサポート

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

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

32Kの列のサポート

Pro*C/C++では、VARCHAR2、NVARCHAR2およびRAWのデータに対して32Kの列データがサポートされるようになりました。この機能は、データベースをOracle Databaseに移行する際にも役立ちます。

自動増分列のサポート

Pro*C/C++では、自動増分列がサポートされるようになりました。これにより、チケット処理、HRおよびトラッキング・アプリケーションの開発が簡略化されます。また、データベースをOracle Databaseに移行する際にも役立ちます。

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

行のプリフェッチに使用するメモリーを指定するためのインラインおよびコマンドライン・オプションが追加されました。新しいMEMFORPREFETCHオプションは、データベースをOracle Databaseに移行する際に役立ちます。既存のPREFETCHオプションはそのまま使用できます。

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

計画ベースラインのSQL文を生成するための各種コマンドライン・オプションが追加されました。生成されるSQLファイルおよびLOGファイルの名前とフォーマットを制御することもできます。これらの新しいオプションにより、既存のプリコンパイラのSQL計画管理が強化されます。これらはパフォーマンス管理の手段として用意されています。また、コンパイラ・アプリケーションをアップグレードする際に役立ちます。

旧リリースの新機能

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

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

  • 8バイト整数のサポート

    Pro*C/C++では、C言語固有のlong long intデータ型がサポートされるようになりました。32ビットおよび64ビットのプラットフォームでは、最大18桁の整数を使用できます。

  • DECLARE CURSOR文のオプションのWITH HOLD句

    DECLARE CURSOR文の新しいWITH HOLD句では、COMMIT後オープンのまま維持するカーソルの保持を指定します。

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

  • SQL99構文のサポート: Pro*C/C++では、SELECT、INSERT、DELETEおよびUPDATE文のSQL99構文、およびDECLARE CURSOR文のカーソル本体がサポートされるようになりました。

  • array INSERTおよびarray SELECT構文の追加のサポート: Pro*C/C++では、DB2プリコンパイラのarray INSERTおよびarray SELECT構文がサポートされるようになりました。

  • 暗黙的なバッファINSERT: Pro*C/C++では、ループ内で実行された単一のINSERT文の暗黙的なバッファリングがサポートされるようになりました。

  • 動的SQL文のキャッシュ: 文のキャッシュによって動的SQL文のパフォーマンスが向上します。

  • 実行計画の修正: デプロイメント中のPro*C/C++アプリケーションのパフォーマンスを向上するために、データベースのアウトライン機能を使用して実行計画を修正できます。

既知の不具合

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

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

  • 接尾辞dを使用するとリテラルをbinary_doubleデータ型に割り当てることができます。この文がPro*C/C++では認識されず、プリコンパイル中にエラーPCC-S-02201が発生します(8551402)

  • プリコンパイル後にEXPLAIN PLANのヒントが消えます(1466269)

  • SPLIT文のバックスラッシュが正しくエスケープされません(1323304)

  • SQLCHECK=FULLを指定してもUPDATE WHERE CURRENT OF文の無効な列が検出されません(658837)

修正されたバグ

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

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++リリース11.2で修正された不具合

  • Pro*C/C++では、マクロ定義(#defines)内のバックスラッシュ('\')文字を正しく解析できるようになりました(8539668)

  • Pro*C/C++では、ヘッダー・ファイルで使用する絶対ファイルパスが、Pro*C/C++を実行中のOSでサポートされているファイルパスの最大長までサポートされるようになりました(8308077)

  • Pro*C/C++では、出力ファイル・パスが128より長い場合、破損した出力ファイル名が生成されなくなりました。Pro*C/C++では、出力ファイルパスが、Pro*C/C++を実行中のOSでサポートされている長さまでサポートされるようになりました(8263988)

  • Pro*C/C++では、EXEC SQL …文の「CREATE SCHEMA … 」を使用した際に構文エラーのフラグが設定されなくなりました(7644340)

  • Pro*C/C++では、EXEC SQL …文の「CREATE TABLE … 」を使用した際に構文エラーのフラグが設定されなくなりました(7644376)

  • Pro*C/C++では、EXEC SQL …文の「CREATE VIEW … 」を使用した際に構文エラーのフラグが設定されなくなりました(7644400)

  • Pro*C/C++では、EXEC SQL …文の「CREATE VIWE … WITH CHECK OPTION」を使用した際に構文エラーのフラグが設定されなくなりました(7644435)

  • Pro*C/C++アプリケーションでは、前にCLOBの動的フェッチがあった場合、CHARZ変数は空白が埋め込まれて保持されるようになりました(7462575)

  • Pro*C/C++では、SQL文でNull値のキャラクタ・バッファをバインドし、次に同じバッファを使用してNull以外の文字列をバインドした場合、文字列が正しくバインドされるようになりました。Pro*C/C++では、バインドされたバッファの長さを再度更新する失敗がなくなり、Null文字列がバインドされているという想定はなくなりました。正しい行が表から取得されるようになりました(7395839)

  • 以前のリリースから11.1にアップグレードした後は、バインド・リストが再使用の試行時に解放されるため、Pro*C/C++アプリケーションがクラッシュしなくなりました(7308054)

  • Pro*Cでは、一部のプラットフォームでプリコンパイル中に診断ディレクティブの#WARNINGが発生した場合、エラーPCC-2014がスローされなくなりました(7252878、6669407、6154596)

  • Pro*C/C++では、絶対パスが指定されているときに、インクルード・ディレクトリのヘッダー・ファイルを直接開くことに失敗した場合、そのファイルを検索することがなくなり、エラーPCC-S-02016「挿入ファイルのパス名が長すぎます。」がレポートされなくなりました(7231977)

  • Linux x86-64の場合、Pro*C/C++は、SELECT INTOのホスト変数がodタイプのpid_tであった場合に停止しなくなりました(7018967)

  • セマンティクス解析は、TimesTenへの接続時に再コンパイルで失敗しなくなりました(6964328)

  • Pro*C/C++では、生成されたCコードのSQLヒントに余分な「+」記号が追加されなくなりました(6432583)

  • Pro*C/C++構成ファイルpcscfg.cfgに、sys_includeエントリに対する有効なパスが指定されるようになりました。コマンドライン・オプションの環境変数がサポートされるようになりました(5690971)

  • Pro*C/C++アプリケーションは、Oracle Technology Networkからbasic.zipをダウンロードして、インスタント・クライアント(IC)環境で実行できます。Pro*C/C++アプリケーションをICモードで開発するには、Oracle Universal Installer(OUI)を使用するメディアのインスタント・クライアント・インストール・オプションを使用して、必要なファイルをインストールする必要があります(5248663)

サポート

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


Pro*C/C++リリース・ノート, 12cリリース1 (12.1)

B72987-02

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

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

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

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

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

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

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

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

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