ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

付録F
廃止されたSQL構文

この付録の内容は、次のとおりです。

F.1 非互換構文

次の項では、非互換構文について説明します。

F.1.1 SCHEMAキーワードを含む非互換構文

1つのデータベースには複数のスキーマが含まれている場合があるため、次の互換性のない変更は、SCHEMAキーワードを含むSQL構文に適用されます。

F.1.1.1 CREATE SCHEMAの非互換

データベースを作成する際のCREATE SCHEMA文の使用は、廃止予定です。CREATE SCHEMA文を使用してデータベースの物理属性(ルート・ファイル・パラメータなど)を指定すると、廃止予定の機能を示すメッセージが表示され、その文は以前のバージョンのSQLの場合と同様に解釈されます。


SQL> CREATE SCHEMA PARTS SNAPSHOT IS ENABLED;
%SQL-I-DEPR_FEATURE, Deprecated Feature: SCHEMA (meaning DATABASE)
SQL>

ただし、データベースの物理属性を指定しない場合、CREATE SCHEMA文を使用するには、マルチスキーマ・ネーミングを有効にする必要があります。


SQL> CREATE SCHEMA PARTS;
%SQL-F-SCHCATMULTI, Schemas and catalogs may only be referenced with
multischema enabled

マルチスキーマ・ネーミングを有効にすると、CREATE SCHEMA文によって、現在のカタログ内に新規スキーマが作成されます。


SQL> ATTACH 'ALIAS Q4 FILENAME INVENTORY MULTISCHEMA IS ON';
SQL> CREATE SCHEMA PARTS;
SQL> SHOW SCHEMAS;
Schemas in database with alias Q4
    RDB$SCHEMA
    PARTS

F.1.1.2 SHOW SCHEMAの非互換

マルチスキーマ属性を持つデータベースにアタッチし、マルチスキーマ・ネーミングを有効にしている場合、SHOW SCHEMA文を使用すると、現在のカタログのすべてのスキーマが表示されます。データベースを表示するには、SHOW DATABASE文またはSHOW ALIAS文を使用します。

マルチスキーマを有効にしていない場合にSHOW SCHEMA文を使用すると、エラー・メッセージが表示されます。

F.1.1.3 DROP SCHEMAの非互換

マルチスキーマ属性を持つデータベースにアタッチし、マルチスキーマ・ネーミングを有効にしている場合、DROP SCHEMA文を使用すると、指定したスキーマがそのデータベースから削除されます。

マルチスキーマを有効にしていない場合にDROP SCHEMA文を使用すると、エラー・メッセージが表示されます。

DROP SCHEMA FILENAME文を使用すると、V4.0以前のバージョンの場合と同様に文が解釈されます。つまり、指定したファイル名のデータベースが削除され、廃止予定の機能を示すエラー・メッセージが表示されます。

F.1.2 DROP TABLEに対する現在のデフォルト制限

V4.1以上では、DROP TABLE文のデフォルトの動作は、以前のバージョンのようなカスケード削除ではなく、制限付き削除です。この動作では、表のみが削除されます。指定した表を他の項目(ビュー、制約、索引またはトリガー)が参照している場合、次の例に示すように、削除は失敗します。


SQL> DROP TABLE DEGREES;
%RDB-E-NO_META_UPDATE, metadata update failed
-RDMS-F-TRGEXI, relation DEGREES is referenced in trigger
COLLEGE_CODE_CASCADE_UPDATE
-RDMS-F-RELNOTDEL, relation DEGREES has not been deleted

SQL DROP TABLE文にCASCADEキーワードを指定すると、その表またはビューを参照するすべての項目が削除され、次に、表自体が削除されます。次の例では、カスケード削除を示しています。


SQL> DROP TABLE JOB_HISTORY CASCADE;
View CURRENT_INFO is also being dropped.
View CURRENT_JOB is also being dropped.
Constraint JOB_HISTORY_FOREIGN1 is also being dropped.
Constraint JOB_HISTORY_FOREIGN2 is also being dropped.
Constraint JOB_HISTORY_FOREIGN3 is also being dropped.
Index JH_EMPLOYEE_ID is also being dropped.
Index JOB_HISTORY_HASH is also being dropped.
VIA clause on storage map JOB_HISTORY_MAP is also being dropped.
Trigger EMPLOYEE_ID_CASCADE_DELETE is also being dropped.

F.1.3 データベース・ハンドル名の25文字以下への制限

データベース・ハンドル名は、SQLでは別名と呼ばれます。セッションがSQLプリコンパイラ・コマンドラインのOPTIONS=(CONNECT)修飾子またはモジュール言語コマンドラインのCONNECT修飾子によって有効になると、別名の長さは25文字以下に制限されます。データベース・ハンドルは、V4.1より前のバージョンのSQLでは認可識別子と呼ばれていました。

F.1.4 ORDER BY句の廃止予定のデフォルト・セマンティクス

V4.1以前のバージョンでは、SQLには次のデフォルト・セマンティクスがありました。

注意

2番目またはそれ以降のソート・キーにASCとDESCのどちらも指定しない場合、先行するソート・キーに指定した順序が使用されます。最初のソート・キーにソート順を指定しない場合、デフォルトでは昇順になります。

F.1.5 EXTERNAL NAMES IS句に対する変更

マルチスキーマEXTERNAL NAME IS句は、ANSI/ISO SQL規格との混乱を回避するために、STORED NAME IS句に変更されました。

F.2 廃止予定の構文

表F-1は、新しい構文に置き換えられたSQL文を示しています。これらの文は、SQLで引き続き使用できますが、廃止予定の機能を示すメッセージを使用してフラグが付けられる場合があります。

表F-1 SQLの廃止予定の構文
廃止予定の文 新しい構文 廃止予定の機能を示すメッセージの有無
ALTER CACHE ...
LARGE MEMORY IS ENABLED
ALTER CACHE ...SHARED MEMORY IS PROCESS RESIDENT  
ALTER CACHE ...
SHARED MEMORY IS SYSTEM
ALTER CACHE ...SHARED MEMORY IS PROCESS RESIDENT  
ALTER CACHE ...
WINDOW COUNT IS ...
なし  
ALTER SCHEMA ALTER DATABASE
CREATE CACHE ...
LARGE MEMORY IS ENABLED
CREATE CACHE ...SHARED MEMORY IS PROCESS RESIDENT  
CREATE CACHE ...
SHARED MEMORY IS SYSTEM
CREATE CACHE ...SHARED MEMORY IS PROCESS RESIDENT  
CREATE CACHE ...
WINDOW COUNT IS ...
なし  
CREATE SCHEMA CREATE DATABASE 1
DECLARE SCHEMA --- モジュール言語およびプリコンパイルされたSQL DECLARE ALIAS
DECLARE SCHEMA --- 動的SQLおよび対話型SQL ATTACH 対話型SQLでは○、動的SQLでは×
DECLARE and SET TRANSACTION --- CONSISTENCY LEVEL 2、3 ISOLATION LEVEL READ COMMITTED
ISOLATION LEVEL REPEATABLE READ
ISOLATION LEVEL SERIALIZABLE
DROP SCHEMA FILENAME DROP DATABASE FILENAME プリコンパイルされたSQLおよびSQLモジュール言語のメッセージのみ
DROP SCHEMA PATHNAME DROP DATABASE PATHNAME プリコンパイルされたSQLおよびSQLモジュール言語のメッセージのみ
DROP SCHEMA AUTHORIZATION DROP DATABASE ALIAS プリコンパイルされたSQLおよびSQLモジュール言語のメッセージのみ
EXPORT SCHEMA FILENAME EXPORT DATABASE FILENAME ×
EXPORT SCHEMA PATHNAME EXPORT DATABASE PATHNAME ×
EXPORT SCHEMA AUTHORIZATION EXPORT DATABASE ALIAS ×
FINISH DISCONNECT DEFAULT データベースがDECLARE SCHEMAで宣言されている場合は○、それ以外の場合は準拠しない使用方法を示すエラー・メッセージ
SCHEMA AUTHORIZATIONに対するGRANT GRANT ON DATABASE ALIAS
IMPORT SCHEMA AUTHORIZATION IMPORT DATABASE FROM filespec WITH ALIAS
INTEGRATE INTEGRATE DATABASE
PREPARE...SELECT LIST DESCRIBE...SELECT LIST
REVOKE REVOKE ON DATABASE ALIAS
SET ANSI SET DEFAULT DATE FORMAT
SET KEYWORD RULES
SET QUOTING RULES
SET VIEW UPDATE RULES
×
ALTER DATABASE...
JOURNAL IS...
[NO]CACHE FILENAME...
なし ○(この機能は新しいハードウェアでは無効になった。)
ALTER DATABASE...
JOURNAL IS ...
NOTIFY
CREATEまたはALTER DATABASE NOTIFY ○(この機能は変更イメージ・ジャーナル機能から除外された。)
WRITE ONCE storage area attribute なし ○(この機能はハードウェアでの使用は不可能になった。)
VARIANT NOT DETERMINISTIC ×(新しい構文はSQL:1999言語規格に準拠)
NOT VARIANT DETERMINISTIC ×(新しい構文はSQL:1999言語規格に準拠)
GENERAL PARAMETER STYLE PARAMETER STYLE GENERAL ×(新しい構文はSQL:1999言語規格に準拠)
WHILE...LOOP...END LOOP WHILE...DO...END WHILE ×(新しい構文はSQL:1999言語規格に準拠)


1詳細は、付録F.1節を参照してください。

F.2.1 コマンドライン修飾子

SQLモジュール言語およびプリコンパイラ・コマンドラインの一部の修飾子は置き換えられました。具体的な内容は、次のとおりです。

F.2.2 廃止予定の対話型SQL文

SET ANSI文を使用すると、廃止予定の機能を示すメッセージが返されます。この文は次のとおり置き換えられました。

F.2.3 ANSI/ISO SQL規格への制約の準拠

CREATE TABLE文内の制約名の位置が、ANSI/ISO SQLに準拠するよう変更されました。制約名は、制約の後ではなく、前にあると想定されます。制約名を制約の後に配置すると、廃止予定の機能を示す次のメッセージが表示されます。


SQL> CREATE TABLE TEMP2
cont> (COL1 REAL NOT NULL CONSTRAINT C7);
%SQL-I-DEPR_FEATURE, Deprecated Feature: Constraint name clause following
constraint definition
%SQL-I-DEPR_FEATURE, Deprecated Feature: Default evaluation for constraints:
DEFERRABLE

制約に対するデフォルトの評価時間であるDEFERRABLEは、廃止予定になりました。言語がSQLV40の場合、制約はデフォルトでは引き続きDEFERRABLEになります。ただし、評価時間を指定しない場合、廃止予定の機能を示す次のメッセージが表示されます。


SQL> CREATE TABLE TEMP3
cont> (COL1 REAL CONSTRAINT C6 NOT NULL);
%SQL-I-DEPR_FEATURE, Deprecated Feature: Default evaluation for constraints:
DEFERRABLE

言語がSQL92またはSQL99の場合、制約はデフォルトでNOT DEFERRABLEになり、廃止予定の機能を示すメッセージは表示されません。

F.2.4 廃止されたキーワード

表F-2は、廃止されたキーワードと、SQL文で推奨される代替キーワードを示しています。

表F-2 廃止されたSQLキーワード
廃止キーワード 推奨キーワード
COMMIT_TIME COMMIT TIME
CREATETAB CREATE
DIAGNOSTIC CONSTRAINT
QUADWORD BIGINT
READ_ONLY READ ONLY
READ_WRITE READ WRITE
VERB_TIME VERB TIME

廃止されたキーワードを使用すると、次の診断メッセージが表示されます。


 SET TRANSACTION READ_ONLY;
                 1
%SQL-I-DEPR_FEATURE, (1) Deprecated Feature: READ_ONLY

F.2.5 廃止された組込みファンクション

SYS$LIBRARY:SQL_FUNCTIONSライブラリでSQLルーチンまたは外部ルーチンとして提供されていたファンクションのうち、一部のファンクションが廃止され、ネイティブSQL組込みファンクションに置き換えられました。

SQLではこれらのファンクションを直接実装するため、SYS$LIBRARY:SQL_FUNCTIONS内のこれらの定義は不要になりました。これらのファンクションは既存のアプリケーション用にデータベースで保持されますが、新しいアプリケーションでは現在Oracle Rdb内の新しいネイティブ・ファンクションを自動的に使用します。

F.3 廃止予定の論理名

次の項では、廃止予定の論理名と、新しい論理名(ある場合)について説明します。

新しい論理名の詳細は、付録Eを参照してください。

F.3.1 RDB$CHARACTER_SET論理名

論理名RDB$CHARACTER_SETは廃止予定になりました。この名前は、V4.1とV4.0のデータベースおよびアプリケーションの互換性を保つためにSQLで使用されます。

V4.1およびV4.0よりも高いバージョンを使用している場合、Oracle Rdbではこの論理名のかわりに次の句および文を使用することをお薦めします。

F.4 識別子として廃止予定の予約語

後述のリストには、次の規格の予約語が含まれています。

これらの予約語が二重引用符(")なしに識別子として使用されると、ANSI/ISO 1989規格に準拠しない使用方法としてフラグが付けられ、廃止予定の機能を示すメッセージが表示されます。

Oracle Rdbでは、予約語は識別子として使用しないことをお薦めします。この機能は廃止予定であり、将来のバージョンのSQLではサポートされない可能性があるためです。ただし、予約語を識別子として使用する必要がある場合は、ANSI/ISO 1989規格に準拠するように、二重引用符で囲んでください。SQLでは、小文字、スペースまたはタブ・ストップを二重引用符で囲むことはできません。

たとえば、ANSI/ISO 1989の予約語であるSELECTを表の識別子として使用する場合、文を次のように記述します。


SELECT * FROM "SELECT";

F.4.1 ANSI/ISO 1989 SQL規格の予約語

ALL AND ANY
AS ASC AUTHORIZATION
AVG BEGIN BETWEEN
BY CHAR CHARACTER
CHECK CLOSE COBOL
COMMIT CONTINUE COUNT
CREATE CURRENT CURSOR
DEC DECIMAL DECLARE
DEFAULT DELETE DESC
DISTINCT DOUBLE END
ESCAPE EXEC EXISTS
FETCH FLOAT FOR
FOREIGN FORTRAN FOUND
FROM GO GOTO
GRANT GROUP HAVING
IN INDICATOR INSERT
INT INTEGER INTO
IS KEY LANGUAGE
LIKE MAX MIN
MODULE NOT NULL
NUMERIC OF ON
OPEN OPTION OR
ORDER PASCAL PLI
PRECISION PRIMARY PRIVILEGES
PROCEDURE PUBLIC REAL
REFERENCES ROLLBACK SCHEMA
SECTION SELECT SET
SMALLINT SOME SQL
SQLCODE SQLERROR SUM
TABLE TO UNION
UNIQUE UPDATE USER
VALUES VIEW WHENEVER
WHERE WITH WORK