【AIによる回答】
CSE (Common SQL Environment) でOracleに接続した際に、PL/SQLのバージョンが???と表示される現象は、主にCSEがOracleのメタデータからバージョン情報を正しく取得できていない場合に発生します。これはSQL実行機能自体には影響しないことが多いですが、以下の原因と対策が考えられます。主な原因と対策
- Oracleクライアント(OCI)のバージョンの不整合
- 原因: CSEが使用しているOracle Client (OCI) のバージョンが、接続先のOracle Databaseのバージョンと大きく異なる、または古い場合にバージョン情報が取得できないことがあります。
- 対策: 接続先のOracle Databaseバージョンに合った、最新のOracle Instant Clientなどをインストールし、CSEの環境設定でそのライブラリを使用するように設定してください。
- 接続ユーザの権限不足
- 原因: CSEはデータベースの接続時に
PRODUCT_COMPONENT_VERSIONなどのシステムビューや、PL/SQLパッケージのバージョンを確認しようとします。接続しているユーザにこれらのビューへの参照権限がない場合、情報が???になります。- 対策: 接続ユーザに、以下のビューへの参照権限(SELECT)を付与してください。
PRODUCT_COMPONENT_VERSIONV$VERSION- または、DBA権限(確認用の一時的な措置として)
- OCIライブラリの読み込み失敗
- 原因:
oci.dllなどのライブラリが正しく読み込めていない、あるいは環境変数PATHにOracle Clientのパスが通っていない。- 対策: Windowsのシステム環境変数
PATHに、Oracle Clientのbinフォルダへのパスが正しく通っているか確認してください。補足もし、この状態でもSQL(SELECTやUPDATEなど)が正常に実行できているのであれば、表示上の問題である可能性が高いです。もし上記対策でも解決しない場合は、以下の手順でCSEの設定を確認してみてください。
- CSEの「ツール」>「オプション」>「Oracle」の設定画面で、OCIのパスが正しいか確認。
- Oracleへの接続方法を「OCI」から「ODBC」に変更して試す。
