原典情報: $ORACLE_HOME/sqlplus/doc/README.htm
このリリース・ノートでは、要件、SQL*Plusとそのドキュメントに記述された機能との違い、今回のリリースの新機能およびサポート情報について説明します。
目次
1 認証SQL*Plus(iSQL*Plusを含む)は、オペレーティング・システム固有のOracle Databaseドキュメントに記載されているオペレーティング・システムに対して認証されます。
SQL*Plus(iSQL*Plusを含む)は、Oracle Database 10g リリース1(10.1)およびサポート対象のすべてのOracle Serverに対して認証されます。
iSQL*PlusはOracle Application Server Containers for Java(OC4J)を使用できるように規格が統一されたため、iSQL*Plusの構成およびインタフェースの一部が変更されました。この項では、それらの変更について概要を説明します。iSQL*Plusリリース10.1の構成および使用方法の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
必要に応じて、スクリプトを実行する前にiSQL*Plusの動的レポートをコールするHTMLフォームを使用し、1つの画面で複数の値を要求できます。
iSQL*Plusが動的レポートを生成する場合、またはHTMLファイルに保存するように設定されている場合、ユーザーはスクリプト入力を要求されず、出力は1ページ表示に設定されます。この動作はiSQL*Plus 9.2と同じです。
各ブラウザは、セッションを個別に処理します。たとえば、Windowsの「スタート」メニューから2つ目のInternet Explorerブラウザを起動すると、ユーザーは、1つのiSQL*Plusサーバーに対して複数の同時セッションを実行できます。 Internet Explorerの「ファイル」→「新規作成」→「ウィンドウ」オプションを使用して新規ウィンドウをオープンした場合は、複数のセッションを同時に実行できません。
SQL*Plusインスタント・クライアントは、必要に応じて、OCIインスタント・クライアントをサポートするSQL*Plusコマンドライン・インタフェースで使用できます。これはSQL*Plusコマンドラインのすべての機能を備えているため、従来のORACLE_HOMEをインストールする必要はありません。SQL*Plusインスタント・クライアントは簡単にインストールでき、従来のORACLE_HOMEと比べてディスク領域の使用量が大幅に減少しています。
OCIインスタント・クライアントの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。 The SQL*Plusインスタント・クライアントのリリース・ノートは、http://otn.oracle.co.jp/のOracle Technology Network Japan(OTN-J)から取得可能なインスタント・クライアントに含まれています。
この項では、SQL*Plusに関する一般的な問題および回避策について説明します。
Oracle Database 8.1.7以上のバージョンに接続できます。 Oracle Database 8.1.7より前のバージョンに接続しようとすると、次のエラーが発生して失敗します。
ORA-03134: このバージョンのサーバーへの接続は、サポートされていません。
NCLOB列では、ワード単位で折り返す書式は設定できません。COLUMNコマンドでWORD_WRAPオプションを使用してNCLOB列を書式設定しても、列データはワード単位の折返しではなく、単に折り返して表示されます。
WindowsのGraphical User Interface(GUI)では、Oracle8 Serverに対する非ブロック化データベース・コールはサポートされていません。したがって、文の実行中に取消しダイアログは表示されません。これは、マルチ・タスクのオペレーティング・システムに影響しません。
LONG列の問合せには、SET LONGCHUNKSIZEコマンドの値に関係なく、SET LONGコマンドの値で指定されたデータ量を格納できる十分なローカル・メモリーが必要です。この制限は、LOBの問合せには適用されません。
SET SERVEROUTPUTまたはSET APPINFOコマンドがグローバルな初期化ファイル(glogin.sql)またはローカル・ファイル(login.sql)に格納されている場合、サーバーに対して権限が必要な接続を行うとエラーが発生する場合があります。
一部のWebブラウザでは、「戻る」ボタンを使用してもiSQL*Plus出力の前のページを表示できない場合があります。
PAUSEコマンドを実行すると、すべてのPAUSE [text]が出力され、「次のページ」ボタンが表示される必要があります。しかし、実際には「入力は必須です。」画面が表示され、[text]はプロンプトとして入力フィールドの前に表示されます。
『SQL*Plusユーザーズ・ガイドおよびリファレンス』には、iSQL*Plusの出力は次の位置に表示できると記載されています。
今回のリリースでは、出力は入力領域の下部にのみ表示でき、HTMLファイルに保存できます。将来のiSQL*Plusのバージョンでは、新規のブラウザ・ウィンドウや同じブラウザ・ウィンドウに出力を表示する機能が追加される予定です。
このリリースのiSQL*PlusでRECOVERコマンドを使用するには、「設定項目」→「データベース管理」→「自動リカバリ」をオンにします。これをオンにしないと、RECOVERコマンドは次のメッセージを戻します。
SP2-0872 メッセージ872が見つかりません。製品=SQLPlus、機能=SP2。
web.xml構成ファイルを変更した後、iSQL*Plusを再起動する必要があります。
JAZNを起動するには、次のコマンドを使用してください。
$JAVA_HOME/bin/java -Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password admin_password -shell
ユーザーのパスワードの期限が近い場合に、iSQL*Plusで次のエラーが表示されません。
ORA-28002: パスワードは、grace_period日以内に期限切れになります。
したがって、ユーザーは、猶予期間を経過してアカウントがロックされる前にパスワードを変更する必要があることに気づかない可能性があります。
SQL*Plus リリース10.1は、SQL*Plus リリース9.2のスーパーセットです。
この項では、今回のリリースのSQL*Plusで導入された新機能について説明します。一部の機能は、SQLPLUSCOMPATIBILITY設定の影響を受ける場合があります。 『SQL*Plusユーザーズ・ガイドおよびリファレンス』の第13章「SQL*Plusコマンド・リファレンス」の「SET SQLPLUSCOMPATIBILITYのマトリックス」を参照してください。
以前は、ユーザー名とパスワード、または/NOLOGを使用してSQL*Plusを起動すると、SQL*Plusサイトおよびユーザー・プロファイル・ファイルgloginとloginが実行されました。これらは、CONNECTコマンドが正常に実行された後に実行されるようになりました。
SET PAGESIZE 14およびSET SQLPLUSCOMPATIBILITY 8.1.7は、サイト・プロファイル(glogin.sql)から削除されました。ページ・サイズのデフォルト値は24から14に変更されたため、実際にはデフォルト値が14であることに変わりはありません。SQLPLUSCOMPATIBILITYのデフォルトは10.1に設定されます。
SQL*Plusコマンドラインのプロンプトで置換変数を使用できるようになりました。これによって、接続先のデータベースやサーバーなどを表示したり、選択した置換変数を介して利用可能な情報を表示できます。この使用方法は、TTITLEにおける置換変数の使用方法と同じです。これは特に、現行の接続や実行時の現行ユーザーなど、ランタイム情報を表示するのに役立ちます。
事前定義の置換変数が3つ追加されました。
他の置換変数と同様に、これらの変数はアクセスしたり表示することができます。
ネストされたPL/SQLファンクションの出力の表示方法を変更すると、SET SERVEROUTPUT ONの出力の外観を変更できます。SET SERVEROUTPUT ONでは、SQL文内でネストされたPL/SQLファンクションの出力(DBMS_OUTPUT.PUT_LINE)が正しく表示されるようになりました。以前は、ネストされたPL/SQLファンクションの出力は、後続のPL/SQLファンクションが実行されるまで表示されませんでした。
新規のSHOW RECYCLEBIN [original_name]コマンドが追加されました。これにより、PURGEおよびFLASHBACK BEFORE DROPコマンドを使用したパージまたは元に戻す操作で使用できるオブジェクトを表示できます。
SPOOLコマンドが拡張されました。以前はファイルの作成(および置換)のみ可能でしたが、既存のファイルへの追加および置換も可能になりました。デフォルトはファイルの置換です。 新しい構文は次のとおりです。
SPOOL {file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]]|OFF|OUT}
SQLPLUSコマンドに新しいコマンドライン引数SQLPLUS -C x.y.zが追加されました。この引数は、SQLPLUSCOMPATIBILITYシステム変数の値を指定します。
Windowsでは、ファイル名およびパスに空白を含めることができます。これは特にSTART、@、@@およびRUNコマンドで可能で、SPOOL、SAVEおよびEDITコマンドでも可能です。空白を含むファイルまたはパスを参照する場合は、ファイル名またはパスを引用符で囲んでください。次に例を示します。
SPOOL "Monthly Report.sql" SAVE "c:\program files\ora10\scripts\Monthly Report.sql"
いくつかのSQL*Plusメッセージが改善されました。たとえば、COPYコマンド・エラーに関する次のエラー・メッセージが追加されました。
SQL*PlusコマンドラインのSET PAGESIZEのデフォルト値が24から14に変更されました。iSQL*Plusのデフォルト値は24です。
『SQL*Plus for Windowsスタート・ガイド』は廃止されました。Windows固有の情報は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』に記載されています。
この項では、以前のリリースのSQL*Plusで導入された新機能を示します。
この項では、SQL*Plusコマンドおよびインタフェースのサポート解除を事前通知します。サポート解除の時期については正式な通知ではなく、Oracleの廃止プロセスにかわるものではありません。ここでの情報は、オラクル社が将来のリリースで機能またはインタフェースのサポートを解除する予定であることを事前に警告するために提供されます。
COPYコマンドでは、『SQL*Plusユーザーズ・ガイドおよびリファレンス』に記載されているCOPYコマンドのデータ型がサポートされますが、今後、新しいデータ型はサポートされません。COPYコマンドは、将来のSQL*Plusのリリースで廃止される予定です。
SQL*Plus for WindowsのGraphical User Interface(GUI)は、将来のSQL*Plusのリリースでサポートされなくなります。SQL*Plus for WindowsのGUIは、ブラウザ・ベースのiSQL*Plusユーザー・インタフェースに置き換わります。SQL*Plus for Windowsのコマンドライン(DOS)インタフェースは、引続きサポートされます。
iSQL*Plus Extension for Windowsは、今回のリリースのSQL*Plusでは使用できません。この拡張機能は将来のバージョンでも使用できない予定です。
この項では、『SQL*Plusユーザーズ・ガイドおよびリファレンス』の既知の変更を説明します。
「iSQL*Plusアプリケーション・サーバーの構成」の項にある「iSQL*Plusを使用したSSLの有効化」の説明は、次のように置換してください。
ここでは、SSL(HTTPS)を使用するためのiSQL*Plusの設定例を示します。 ここでは、独自のX.509証明書を使用するか、または自己署名証明書を生成できます。
この手順では、$JAVA_HOMEに$ORACLE_HOME/jdkを設定し、次の手順を$ORACLE_HOME/oc4j/j2eeディレクトリから実行します。
keytoolユーティリティを使用して、鍵のペア(公開鍵および秘密鍵)、公開鍵を署名するための自己署名X.509証明書、および鍵のペアを格納するキー・ストア(データベース)を生成します。
$JAVA_HOME/bin/keytool -genkey -keyalg "RSA" -alias isqlplus -keystore keystore -storepass welcome -validity 365
この例では、次のように設定します。
keytoolユーティリティは、次のように詳細な情報の入力を要求するプロンプトを表示します。 ここでは、会社に関する情報を入力してください。
What is your first and last name? [Unknown]: Test User What is the name of your organizational unit? [Unknown]: IT Department What is the name of your organization? [Unknown]: Oracle Corporation What is the name of your City or Locality? [Unknown]: San Francisco What is the name of your State or Province? [Unknown]: California What is the two-letter country code for this unit? [Unknown]: US
Is CN=Test User, OU=IT Department, O=Oracle Corporation, L=San Francisco, ST=California, C=US correct? =[no]: yes
Enter key password for <mykey> (RETURN if same as keystore password):
keystoreというストレージ・ファイルが、カレント・ディレクトリに生成されます。 keystoreファイルには、自己署名X.509証明書、秘密鍵および署名された公開鍵が含まれます。 自己署名証明書は、公開鍵を署名するために使用します。
サーバーのルート証明書がなく、自己署名証明書を使用する場合は、手順2〜4をスキップして、手順5「SSLモードでのiSQL*Plusの実行を構成」に進んでください。
サーバーのルート証明書があり、自己署名証明書を使用しない場合は、ご使用のサーバーのルート証明書を手順1で作成したストレージ・ファイルにロードします。
$JAVA_HOME/bin/keytool -keystore keystore -import -alias servertest -file servertest.cerEnter keystore password: welcomeOwner: CN=Thawte Test CA Root, OU=TEST TEST TEST, O=Thawte Certification, ST=FO TESTING PURPOSES ONLY, C=ZA Issuer: CN=Thawte Test CA Root, OU=TEST TEST TEST, O=Thawte Certification, ST=FR TESTING PURPOSES ONLY, C=ZA Serial number: 0 Valid from: Thu Aug 01 10:00:00 EST 1996 until: Fri Jan 01 08:59:59 EST 2021 Certificate fingerprints: MD5: 5E:E0:0E:1D:17:B7:CA:A5:7D:36:D6:02:DF:4D:26:A4 SHA1: 39:C6:9D:27:AF:DC:EB:47:D6:33:36:6A:B2:05:F1:47:A9:B4:DA:EATrust this certificate? [no]: yesCertificate was added to keystore
この例では、ルート証明書servertest.cerに対して別名servertestが作成されます。
認証局への証明書の要求
証明書を要求する認証局(CA)への証明書要求を作成します。
$JAVA_HOME/bin/keytool -certreq -keystore keystore -file mycsr.csrEnter keystore password: welcome
この例では、証明書要求ファイルはmycsr.csrです。 mycsr.csrの内容を使用して新しい証明書をCAに要求します。 新しいファイルmycert.cerを作成し、このファイルに新しい証明書の内容を貼り付けます。
ストレージ・ファイルへの証明書のインポート
手順3で取得した新しい証明書をストレージ・ファイルへインポートします。
$JAVA_HOME/bin/keytool -import -trustcacerts -file mycert.cerEnter keystore password: welcomeOwner: CN=Test User, OU=IT Department, O=Oracle Corporation, L=San Francisco, ST=California, C=US Issuer: CN=Thawte Test CA Root, OU=TEST TEST TEST, O=Thawte Certification, ST=FOR TESTING PURPOSES ONLY, C=ZA Serial number: 7988 Valid from: Thu Sep 04 14:12:45 EST 2003 until: Thu Sep 25 14:12:45 EST 2003Certificate fingerprints:MD5: F3:E2:1F:6B:5E:E0:8A:7C:7D:94:60:96:28:55:CF:75SHA1: D2:54:0E:97:86:53:D7:F5:E9:68:BC:C6:BF:42:62:88:38:15:BE:F4 Trust this certificate? [no]: yes Certificate was added to keystore
SSLモードでのiSQL*Plusの実行を構成
http-web-site.xmlをsecure-web-site.xmlにコピーします。
cd $ORACLE_HOME/oc4j/j2ee/isqlplus/config
cp http-web-site.xml secure-web-site.xml
次のようにsecure-web-site.xmlを編集し、ポート番号を設定して(変更する場合)、属性secure="true"を追加します。
<web-site port="4444" secure="true" display-name="Oracle9iAS Containers for J2EE HTTP Web Site">
SSLモードのiSQL*Plusに使用するポートは、マシン上のどの空きポートでもかまいません。 この例では、ポート4444を設定します。デフォルトのSSLポートは443です。
secure-web-site.xmlファイルで、新しい要素をweb-site要素に追加します。
<ssl-config keystore="/oracle/ora10g/oc4j/j2ee/keystore" keystore-password="welcome"/>
secure-web-site.xmlファイルを参照するように、server.xmlを編集します。
<web-site default="true" path="./secure-web-site.xml"/>
SSL実装の詳細は、『Oracle Application Server Containers for J2EEセキュリティ・ガイド』を参照してください。
iSQL*PlusサーバーとOracleデータベース間のOracle Net接続では、従来のクライアント・サーバー・アーキテクチャと同じセキュリティが提供されます。 Oracle Net接続のセキュリティの詳細は、『Oracle Net Services管理者ガイド』および『Oracle Advanced Security管理者ガイド』を参照してください。