原典情報: $ORACLE_HOME/precomp/doc/proc/readme.doc
目次
このファイルには、リリース11.2.0.2.0のOracle Databaseに対応するプリコンパイラ・リリースであるPro*C/C++リリース11.2.0.2.0に関する重要な情報が含まれています。内容は次のとおりです。
この項では、以前のリリースのPro*C/C++から移行する際の互換性の問題点について説明します。
32ビット実装と64ビット実装の両方をサポートするプラットフォームでは、64ビット・バイナリとリンクする前に、EXEC SQL INCLUDE文を介してsqlcaをインクルードするアプリケーションを再度プリコンパイルする必要があります。#includeプリプロセッサ文を介してsqlca.hをインクルードするアプリケーションの場合は、64ビット・バイナリと再リンクする前に再コンパイルして、64ビットのsqlca.hをインクルードする必要があります。
将来は、実装間で生成コードの互換性をサポートするために、32ビット・バイナリと64ビット・バイナリの両方をサポートするポートでは、1バージョン、つまり64ビット・バージョンのsqlca.hのみが提供される可能性があります。
Pro*C/C++構成ファイル、つまり、precomp/admin/pcscfg.cfgにはデフォルトのオプションが含まれていますが、ユーザーは使用する前に「pcscfg.cfg」ファイルを検証して更新する必要があります。リリース11g リリース2から、構成ファイルでOS環境変数も使用できるようになりました。たとえば、ORACLE_HOMEはUNIXプラットフォームでは$ORACLE_HOMEと表記し、Windowsプラットフォームでは%ORACLE_HOME%と表記します。RHEL 4 with gccバージョン4.1.2では、環境変数のORACLE_HOMEを構成ファイルで次のように使用できます。
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.2/include)
include=($ORACLE_HOME/precomp/public,$ORACLE_HOME/precomp/hdrs)
LTYPE=SHORTオプションを設定すると、.lisファイルの生成には、プログラム全体がリストされる公開形式ではなく詳細形式が使用されます。
この項では、Pro*C/C++リリース11.2で導入された新機能の概要を説明します。
Pro*C/C++では、C固有のlong long intデータ型がサポートされるようになりました。32ビット・プラットフォームと64ビット・プラットフォームで18桁までの整数を使用できます。
DECLARE CURSOR文の新しいWITH HOLD句では、COMMIT後のオープン状態を維持する保持されたカーソルが指定されます。
この項では、以前のリリースのPro*C/C++で導入された新機能を示します。
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番号です。
プリコンパイル後にEXPLAIN PLANのヒントが消える(1466269)
SPLIT文中のバックスラッシュが正常にエスケープされない(1323304)
SQLCHECK=FULLを指定してもUPDATE WHERE CURRENT OF文の無効な列が検出されない(658837)
次の項では、Pro*C/C++の修正された不具合を示します。説明の後にあるカッコ内の番号は、オラクル社のBugデータベース内のBug番号です。
Pro*C/C++では、静的なEXEC SQL文を使用したクライアント結果キャッシュがサポートされるようになりました(8766161)
Pro*C/C++では、数値のdouble定数に接尾辞の「D」と「d」が使用できるようになりました(8551402)
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サポート・サービスに連絡してください。
Oracle、JD Edwards、PeopleSoft、Siebelは米国Oracle Corporationおよびその子会社、関連会社の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。
Copyright © 1992, 2010 Oracle Corporation.
All Rights Reserved.