http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05750-03/ap_keywd.htm

V$RESERVED_WORDSデータ・ディクショナリ・ビューには、すべてのキーワードに関する追加情報が表示されます。


アスタリスク（*）が付いた語は、ANSIの予約語

ACCESS 
ADD * 
ALL * 
ALTER * 
AND * 
ANY * 
AS * 
ASC * 
AUDIT 
BETWEEN * 
BY * 
CHAR * 
CHECK * 
CLUSTER 
COLUMN 
COMMENT 
COMPRESS 
CONNECT * 
CREATE * 
CURRENT * 
DATE * 
DECIMAL * 
DEFAULT * 
DELETE * 
DESC * 
DISTINCT * 
DROP * 
ELSE * 
EXCLUSIVE 
EXISTS 
FILE 
FLOAT * 
FOR * 
FROM * 
GRANT * 
GROUP * 
HAVING * 
IDENTIFIED 
IMMEDIATE * 
IN * 
INCREMENT 
INDEX 
INITIAL 
INSERT * 
INTEGER * 
INTERSECT * 
INTO * 
IS * 
LEVEL * 
LIKE * 
LOCK 
LONG 
MAXEXTENTS 
MINUS 
MLSLABEL 
MODE 
MODIFY 
NOAUDIT 
NOCOMPRESS 
NOT * 
NOWAIT 
NULL * 
NUMBER 
OF * 
OFFLINE 
ON * 
ONLINE 
OPTION * 
OR * 
ORDER * 
PCTFREE 
PRIOR * 
PRIVILEGES * 
PUBLIC * 
RAW 
RENAME 
RESOURCE 
REVOKE * 
ROW 
ROWID 
ROWNUM 
ROWS * 
SELECT * 
SESSION * 
SET * 
SHARE 
SIZE * 
SMALLINT * 
START 
SUCCESSFUL 
SYNONYM 
SYSDATE 
TABLE * 
THEN * 
TO * 
TRIGGER 
UID 
UNION * 
UNIQUE * 
UPDATE * 
USER * 
VALIDATE 
VALUES * 
VARCHAR * 
VARCHAR2 
VIEW * 
WHENEVER * 
WHERE 
WITH * 


============================================================

http://docs.oracle.com/cd/E16338_01/server.112/b56311/dynviews_2134.htm
V$RESERVED_WORDSは、すべてのSQLキーワードのリストを示します。
特定のキーワードが予約済かどうか判断するには、RESERVED、RES_TYPE、RES_ATTR、RES_SEMIの各列を確認してください。

KEYWORD		VARCHAR2(30)	キーワードの名前 
LENGTH		NUMBER			キーワードの長さ 
RESERVED	VARCHAR2(1)		キーワードを識別子として使用できないか(Y)、またはキーワードが予約されていない(N) 
RES_TYPE	VARCHAR2(1)		キーワードをタイプ名として使用できないか(Y)、またはキーワードが予約されていない(N) 
RES_ATTR	VARCHAR2(1)		キーワードを属性名として使用できないか(Y)、またはキーワードが予約されていない(N) 
RES_SEMI	VARCHAR2(1)		キーワードがDMLなど特定の場合に識別子として許可されていないか(Y)、またはキーワードが予約されていない(N) 
DUPLICATE	VARCHAR2(1)		キーワードが別のキーワードの複製であるか(Y)、またはキーワードが複製でない(N) 

Step0:ORACLE予約語をすべて削除します。
delete from GF19 where DBNAME = 'ORACLE' ;


Step1:ORACLEキーワードをすべて登録します。(CDYOYAKU='1')
insert into GF19
	(YOYAKU,DBNAME,CDYOYAKU,RANKCOM,FGJ)
select KEYWORD,'ORACLE','1','0','1'
	from  V$RESERVED_WORDS
	where LENGTH > 1 ;


Step2:PL/SQLの予約語についてフラグをセットし直します。(CDYOYAKU='2')
		これらは、弱い順に更新することで、強い条件が優先されます。
update GF19 set CDYOYAKU='2'
where DBNAME='ORACLE'
and   YOYAKU in (
		'ABORT','BETWEEN','CRASH','DIGITS',
		'ACCEPT','BINARY_INTEGER','CREATE','DISPOSE',
		'ACCESS','BODY','CURRENT','DISTINCT',
		'ADD','BOOLEAN','CURRVAL','DO',
		'ALL','BY','CURSOR','DROP',
		'ALTER','CASE','DATABASE','ELSE',
		'AND','CHAR','DATA_BASE','ELSIF',
		'ANY','CHAR_BASE','DATE','END',
		'ARRAY','CHECK','DBA','ENTRY',
		'ARRAYLEN','CLOSE','DEBUGOFF','EXCEPTION',
		'AS','CLUSTER','DEBUGON','EXCEPTION_INIT',
		'ASC','CLUSTERS','DECLARE','EXISTS',
		'ASSERT','COLAUTH','DECIMAL','EXIT',
		'ASSIGN','COLUMNS','DEFAULT','FALSE',
		'AT','COMMIT','DEFINITION','FETCH',
		'AUTHORIZATION','COMPRESS','DELAY','FLOAT',
		'AVG','CONNECT','DELETE','FOR',
		'BASE_TABLE','CONSTANT','DELTA','FORM',
		'BEGIN','COUNT','DESC','FROM',
		'FUNCTION','NEW','RELEASE','SUM',
		'GENERIC','NEXTVAL','REMR','TABAUTH',
		'GOTO','NOCOMPRESS','RENAME','TABLE',
		'GRANT','NOT','RESOURCE','TABLES',
		'GROUP','NULL','RETURN','TASK',
		'HAVING','NUMBER','REVERSE','TERMINATE',
		'IDENTIFIED','NUMBER_BASE','REVOKE','THEN',
		'IF','OF','ROLLBACK','TO',
		'IN','ON','ROWID','TRUE',
		'INDEX','OPEN','ROWLABEL','TYPE',
		'INDEXES','OPTION','ROWNUM','UNION',
		'INDICATOR','OR','ROWTYPE','UNIQUE',
		'INSERT','ORDER','RUN','UPDATE',
		'INTEGER','OTHERS','SAVEPOINT','USE',
		'INTERSECT','OUT','SCHEMA','VALUES',
		'INTO','PACKAGE','SELECT','VARCHAR',
		'IS','PARTITION','SEPARATE','VARCHAR2',
		'LEVEL','PCTFREE','SET','VARIANCE',
		'LIKE','POSITIVE','SIZE','VIEW',
		'LIMITED','PRAGMA','SMALLINT','VIEWS',
		'LOOP','PRIOR','SPACE','WHEN',
		'MAX','PRIVATE','SQL','WHERE',
		'MIN','PROCEDURE','SQLCODE','WHILE',
		'MINUS','PUBLIC','SQLERRM','WITH',
		'MLSLABEL','RAISE','START','WORK',
		'MOD','RANGE','STATEMENT','XOR',
		'MODE','REAL','STDDEV',
		'NATURAL','RECORD','SUBTYPE'
);

Step3:ORACLE予約語のみフラグをセットし直します。(CDYOYAKU='0')
update GF19 set CDYOYAKU='0'
where DBNAME='ORACLE'
and   YOYAKU in (
		select KEYWORD
	from V$RESERVED_WORDS
	where ( RESERVED='Y' or RES_SEMI='Y')
	and   LENGTH > 1
);


Step4:共通予約語(ANSIなど）をセットします。(RANKCOM='1')
update GF19 set CONTENTS='ANSY',CDYOYAKU='0',RANKCOM='1'
where DBNAME='ORACLE'
and   YOYAKU in ('ADD','ALL','ALTER','AND','ANY','AS','ASC','BETWEEN','BY','CHAR','CHECK','CONNECT','CREATE','CURRENT','DATE','DECIMAL','DEFAULT','DELETE','DESC','DISTINCT','DROP','ELSE','FLOAT','FOR','FROM','GRANT','GROUP','HAVING','IMMEDIATE','IN','INSERT','INTEGER','INTERSECT','INTO','IS','LEVEL','LIKE','NOT','NULL','OF','ON','OPTION','OR','ORDER','PRIOR','PRIVILEGES','PUBLIC','REVOKE','ROWS','SELECT','SESSION','SET','SIZE','SMALLINT','TABLE','THEN','TO','UNION','UNIQUE','UPDATE','USER','VALUES','VARCHAR','VIEW','WHENEVER','WITH' ) ;


Step5:ORACLEのキーワードが多いので、最初に INSERTしたままのキーワードを、削除します。(CDYOYAKU='1')
delete from GF19
	where DBNAME = 'ORACLE'
	and   CDYOYAKU='1' ;



=========================================================-
http://docs.oracle.com/cd/E16338_01/appdev.112/b61344/appb.htm


