001/* 002 * ModeShape (http://www.modeshape.org) 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.modeshape.sequencer.ddl.dialect.oracle; 017 018import java.util.Arrays; 019import java.util.List; 020import org.modeshape.sequencer.ddl.DdlConstants; 021import org.modeshape.sequencer.ddl.StandardDdlLexicon; 022 023/** 024 * Oracle-specific constants including key words and statement start phrases. 025 * 026 * @author blafond 027 */ 028public interface OracleDdlConstants extends DdlConstants { 029 030 public static final String[] CUSTOM_KEYWORDS = {"ANALYZE", "ASSOCIATE", "TRUNCATE", "MATERIALIZED", "SAVEPOINT", "PURGE", 031 "LOCK", "TRIGGER", "EXPLAIN", "PLAN", "DIMENSION", "DIRECTORY", "DATABASE", "CONTROLFILE", "DISKGROUP", "INDEXTYPE", 032 "SYNONYM", "SEQUENCE", "LIBRARY", "CLUSTER", "OUTLINE", "PACKAGE", "SPFILE", "PFILE", "AUDIT", "COMMIT", "PURGE", 033 "MERGE", "RENAME", "FLASHBACK", "NOAUDIT", "DISASSOCIATE", "NESTED", "REVOKE", "COMMENT", INDEX, "VARCHAR2", "NVARCHAR2", 034 "NUMBER", "BINARY_FLOAT", "BINARY_DOUBLE", "LONG", "RAW", "BLOB", "CLOB", "NCLOB", "BFILE", "INTERVAL", "UNUSABLE"}; 035 036 public static final String[] INLINE_COLUMN_PROPERTY_START = {"CONSTRAINT", "NOT", "NULL", "UNIQUE", "PRIMARY", "CHECK", 037 "DEFAULT", "REFERENCES"}; 038 039 interface OracleStatementStartPhrases { 040 static final String[] STMT_ALTER_CLUSTER = {ALTER, "CLUSTER"}; 041 static final String[] STMT_ALTER_DATABASE = {ALTER, "DATABASE"}; 042 static final String[] STMT_ALTER_DIMENSION = {ALTER, "DIMENSION"}; 043 static final String[] STMT_ALTER_DISKGROUP = {ALTER, "DISKGROUP"}; 044 static final String[] STMT_ALTER_FUNCTION = {ALTER, "FUNCTION"}; 045 static final String[] STMT_ALTER_INDEX = {ALTER, INDEX}; 046 static final String[] STMT_ALTER_INDEXTYPE = {ALTER, "INDEXTYPE"}; 047 static final String[] STMT_ALTER_JAVA = {ALTER, "JAVA"}; 048 static final String[] STMT_ALTER_MATERIALIZED = {ALTER, "MATERIALIZED"}; 049 static final String[] STMT_ALTER_OPERATOR = {ALTER, "OPERATOR"}; 050 static final String[] STMT_ALTER_OUTLINE = {ALTER, "OUTLINE"}; 051 static final String[] STMT_ALTER_PACKAGE = {ALTER, "PACKAGE"}; 052 static final String[] STMT_ALTER_PROCEDURE = {ALTER, "PROCEDURE"}; 053 static final String[] STMT_ALTER_PROFILE = {ALTER, "PROFILE"}; 054 static final String[] STMT_ALTER_RESOURCE = {ALTER, "RESOURCE"}; 055 static final String[] STMT_ALTER_ROLE = {ALTER, "ROLE"}; 056 static final String[] STMT_ALTER_ROLLBACK = {ALTER, "ROLLBACK"}; 057 static final String[] STMT_ALTER_SEQUENCE = {ALTER, "SEQUENCE"}; 058 static final String[] STMT_ALTER_SESSION = {ALTER, "SESSION"}; 059 static final String[] STMT_ALTER_SYSTEM = {ALTER, "SYSTEM"}; 060 static final String[] STMT_ALTER_TABLESPACE = {ALTER, "TABLESPACE"}; 061 static final String[] STMT_ALTER_TRIGGER = {ALTER, "TRIGGER"}; 062 static final String[] STMT_ALTER_TYPE = {ALTER, "TYPE"}; 063 static final String[] STMT_ALTER_USER = {ALTER, "USER"}; 064 static final String[] STMT_ALTER_VIEW = {ALTER, "VIEW"}; 065 066 static final String[][] ALTER_PHRASES = {STMT_ALTER_CLUSTER, STMT_ALTER_DATABASE, STMT_ALTER_DIMENSION, 067 STMT_ALTER_DISKGROUP, STMT_ALTER_FUNCTION, STMT_ALTER_INDEX, STMT_ALTER_INDEXTYPE, STMT_ALTER_JAVA, 068 STMT_ALTER_MATERIALIZED, STMT_ALTER_OPERATOR, STMT_ALTER_OUTLINE, STMT_ALTER_PACKAGE, STMT_ALTER_PROCEDURE, 069 STMT_ALTER_PROFILE, STMT_ALTER_RESOURCE, STMT_ALTER_ROLE, STMT_ALTER_ROLLBACK, STMT_ALTER_SEQUENCE, 070 STMT_ALTER_SESSION, STMT_ALTER_SYSTEM, STMT_ALTER_TABLESPACE, STMT_ALTER_TRIGGER, STMT_ALTER_TYPE, STMT_ALTER_USER, 071 STMT_ALTER_VIEW}; 072 073 static final String[] STMT_ANALYZE = {"ANALYZE"}; 074 static final String[] STMT_ASSOCIATE_STATISTICS = {"ASSOCIATE", "STATISTICS"}; 075 static final String[] STMT_AUDIT = {"AUDIT"}; 076 077 /* 078 COMMIT [ WORK ] [ [ COMMENT string ] 079 | [ WRITE [ IMMEDIATE | BATCH ] [ WAIT | NOWAIT ] ] 080 | FORCE string [, integer ] ] ; 081 082 COMMIT WORK COMMENT "some comment" 083 084 COMMIT COMMENT "some comment" 085 086 COMMIT WORK WRITE [ IMMEDIATE | BATCH ] [ WAIT | NOWAIT ] 087 088 COMMIT WRITE IMMEDIATE NOWAIT; 089 090 COMMIT WORK WRITE IMMEDIATE NOWAIT; 091 092 COMMIT FORCE "some string", 10; 093 */ 094 static final String[] STMT_COMMIT_WORK = {"COMMIT", "WORK"}; 095 static final String[] STMT_COMMIT_WRITE = {"COMMIT", "WRITE"}; 096 static final String[] STMT_COMMIT_FORCE = {"COMMIT", "FORCE"}; 097 static final String[] STMT_COMMIT = {"COMMIT"}; // DON"T REGISTER THIS STMT 098 static final String[] STMT_COMMENT_ON = {"COMMENT", "ON"}; 099 100 static final String[] STMT_CREATE_CLUSTER = {CREATE, "CLUSTER"}; 101 static final String[] STMT_CREATE_CONTEXT = {CREATE, "CONTEXT"}; 102 static final String[] STMT_CREATE_CONTROLFILE = {CREATE, "CONTROLFILE"}; 103 static final String[] STMT_CREATE_DATABASE = {CREATE, "DATABASE"}; 104 static final String[] STMT_CREATE_DIMENSION = {CREATE, "DIMENSION"}; 105 static final String[] STMT_CREATE_DIRECTORY = {CREATE, "DIRECTORY"}; 106 static final String[] STMT_CREATE_DISKGROUP = {CREATE, "DISKGROUP"}; 107 static final String[] STMT_CREATE_FUNCTION = {CREATE, "FUNCTION"}; // PARSE UNTIL '/' 108 static final String[] STMT_CREATE_INDEX = {CREATE, "INDEX"}; 109 static final String[] STMT_CREATE_INDEXTYPE = {CREATE, "INDEXTYPE"}; 110 static final String[] STMT_CREATE_JAVA = {CREATE, "JAVA"}; 111 static final String[] STMT_CREATE_LIBRARY = {CREATE, "LIBRARY"}; // PARSE UNTIL '/' 112 static final String[] STMT_CREATE_MATERIALIZED_VIEW = {CREATE, "MATERIALIZED", "VIEW"}; 113 static final String[] STMT_CREATE_MATERIALIZED_VEIW_LOG = {CREATE, "MATERIALIZED", "VIEW", "LOG"}; 114 static final String[] STMT_CREATE_OPERATOR = {CREATE, "OPERATOR"}; 115 static final String[] STMT_CREATE_OR_REPLACE_DIRECTORY = {CREATE, "OR", "REPLACE", "DIRECTORY"}; // PARSE UNTIL '/' 116 static final String[] STMT_CREATE_OR_REPLACE_FUNCTION = {CREATE, "OR", "REPLACE", "FUNCTION"}; // PARSE UNTIL '/' 117 static final String[] STMT_CREATE_OR_REPLACE_LIBRARY = {CREATE, "OR", "REPLACE", "LIBRARY"}; // PARSE UNTIL '/' 118 static final String[] STMT_CREATE_OR_REPLACE_OUTLINE = {CREATE, "OR", "REPLACE", "OUTLINE"}; 119 static final String[] STMT_CREATE_OR_REPLACE_PUBLIC_OUTLINE = {CREATE, "OR", "REPLACE", "PUBLIC", "OUTLINE"}; // TODO: BML 120 static final String[] STMT_CREATE_OR_REPLACE_PRIVATE_OUTLINE = {CREATE, "OR", "REPLACE", "PRIVATE", "OUTLINE"}; // TODO: 121 // BML 122 static final String[] STMT_CREATE_OR_REPLACE_PACKAGE = {CREATE, "OR", "REPLACE", "PACKAGE"}; 123 static final String[] STMT_CREATE_OR_REPLACE_PROCEDURE = {CREATE, "OR", "REPLACE", "PROCEDURE"}; // PARSE UNTIL '/' 124 static final String[] STMT_CREATE_OR_REPLACE_PUBLIC_SYNONYM = {CREATE, "OR", "REPLACE", "PUBLIC", "SYNONYM"}; 125 static final String[] STMT_CREATE_OR_REPLACE_SYNONYM = {CREATE, "OR", "REPLACE", "SYNONYM"}; 126 static final String[] STMT_CREATE_OR_REPLACE_TRIGGER = {CREATE, "OR", "REPLACE", "TRIGGER"}; // PARSE UNTIL '/ 127 static final String[] STMT_CREATE_OR_REPLACE_TYPE = {CREATE, "OR", "REPLACE", "TYPE"}; 128 static final String[] STMT_CREATE_OUTLINE = {CREATE, "OUTLINE"}; 129 static final String[] STMT_CREATE_PACKAGE = {CREATE, "PACKAGE"}; // PARSE UNTIL '/' 130 static final String[] STMT_CREATE_PFILE = {CREATE, "PFILE"}; 131 static final String[] STMT_CREATE_PROCEDURE = {CREATE, "PROCEDURE"}; // PARSE UNTIL '/' 132 static final String[] STMT_CREATE_PROFILE = {CREATE, "PROFILE"}; 133 static final String[] STMT_CREATE_PUBLIC_DATABASE = {CREATE, "PUBLIC", "DATABASE"}; 134 static final String[] STMT_CREATE_PUBLIC_ROLLBACK = {CREATE, "PUBLIC", "ROLLBACK"}; 135 static final String[] STMT_CREATE_PUBLIC_SYNONYM = {CREATE, "PUBLIC", "SYNONYM"}; 136 static final String[] STMT_CREATE_ROLE = {CREATE, "ROLE"}; 137 static final String[] STMT_CREATE_ROLLBACK = {CREATE, "ROLLBACK"}; 138 static final String[] STMT_CREATE_SEQUENCE = {CREATE, "SEQUENCE"}; 139 static final String[] STMT_CREATE_SPFILE = {CREATE, "SPFILE"}; 140 static final String[] STMT_CREATE_SYNONYM = {CREATE, "SYNONYM"}; 141 static final String[] STMT_CREATE_TABLESPACE = {CREATE, "TABLESPACE"}; 142 static final String[] STMT_CREATE_TRIGGER = {CREATE, "TRIGGER"}; 143 static final String[] STMT_CREATE_TYPE = {CREATE, "TYPE"}; 144 static final String[] STMT_CREATE_USER = {CREATE, "USER"}; 145 static final String[] STMT_CREATE_UNIQUE_INDEX = {CREATE, "UNIQUE", "INDEX"}; 146 static final String[] STMT_CREATE_BITMAP_INDEX = {CREATE, "BITMAP", "INDEX"}; 147 148 public static final String[][] CREATE_PHRASES = {STMT_CREATE_CLUSTER, STMT_CREATE_CONTEXT, STMT_CREATE_CONTROLFILE, 149 STMT_CREATE_DATABASE, STMT_CREATE_DIMENSION, STMT_CREATE_DIRECTORY, STMT_CREATE_DISKGROUP, STMT_CREATE_FUNCTION, 150 STMT_CREATE_INDEX, STMT_CREATE_INDEXTYPE, STMT_CREATE_JAVA, STMT_CREATE_MATERIALIZED_VIEW, 151 STMT_CREATE_MATERIALIZED_VEIW_LOG, STMT_CREATE_OPERATOR, STMT_CREATE_OR_REPLACE_DIRECTORY, 152 STMT_CREATE_OR_REPLACE_FUNCTION, STMT_CREATE_LIBRARY, STMT_CREATE_OR_REPLACE_LIBRARY, STMT_CREATE_OR_REPLACE_OUTLINE, 153 STMT_CREATE_OR_REPLACE_PROCEDURE, STMT_CREATE_OR_REPLACE_PUBLIC_SYNONYM, STMT_CREATE_OR_REPLACE_SYNONYM, 154 STMT_CREATE_OR_REPLACE_PACKAGE, STMT_CREATE_OR_REPLACE_TRIGGER, STMT_CREATE_OR_REPLACE_TYPE, STMT_CREATE_OUTLINE, 155 STMT_CREATE_PACKAGE, STMT_CREATE_PFILE, STMT_CREATE_PROCEDURE, STMT_CREATE_PROFILE, STMT_CREATE_PUBLIC_DATABASE, 156 STMT_CREATE_PUBLIC_ROLLBACK, STMT_CREATE_PUBLIC_SYNONYM, STMT_CREATE_ROLE, STMT_CREATE_ROLLBACK, 157 STMT_CREATE_SEQUENCE, STMT_CREATE_SPFILE, STMT_CREATE_SYNONYM, STMT_CREATE_TABLESPACE, STMT_CREATE_TRIGGER, 158 STMT_CREATE_TYPE, STMT_CREATE_USER, STMT_CREATE_UNIQUE_INDEX, STMT_CREATE_BITMAP_INDEX, STMT_CREATE_TABLESPACE, 159 STMT_CREATE_PROCEDURE}; 160 161 static final String[][] SLASHED_STMT_PHRASES = {STMT_CREATE_FUNCTION, STMT_CREATE_LIBRARY, 162 STMT_CREATE_OR_REPLACE_DIRECTORY, STMT_CREATE_OR_REPLACE_FUNCTION, STMT_CREATE_OR_REPLACE_LIBRARY, 163 STMT_CREATE_OR_REPLACE_PROCEDURE, STMT_CREATE_OR_REPLACE_TRIGGER, STMT_CREATE_PACKAGE, STMT_CREATE_PROCEDURE}; 164 165 static final String[] STMT_DISASSOCIATE_STATISTICS = {"DISASSOCIATE", "STATISTICS"}; 166 167 static final String[] STMT_DROP_CLUSTER = {DROP, "CLUSTER"}; 168 static final String[] STMT_DROP_CONTEXT = {DROP, "CONTEXT"}; 169 static final String[] STMT_DROP_DATABASE = {DROP, "DATABASE"}; 170 static final String[] STMT_DROP_DIMENSION = {DROP, "DIMENSION"}; 171 static final String[] STMT_DROP_DIRECTORY = {DROP, "DIRECTORY"}; 172 static final String[] STMT_DROP_DISKGROUP = {DROP, "DISKGROUP"}; 173 static final String[] STMT_DROP_FUNCTION = {DROP, "FUNCTION"}; 174 static final String[] STMT_DROP_INDEX = {DROP, "INDEX"}; 175 static final String[] STMT_DROP_INDEXTYPE = {DROP, "INDEXTYPE"}; 176 static final String[] STMT_DROP_JAVA = {DROP, "JAVA"}; 177 static final String[] STMT_DROP_LIBRARY = {DROP, "LIBRARY"}; 178 static final String[] STMT_DROP_MATERIALIZED = {DROP, "MATERIALIZED"}; 179 static final String[] STMT_DROP_OPERATOR = {DROP, "OPERATOR"}; 180 static final String[] STMT_DROP_OUTLINE = {DROP, "OUTLINE"}; 181 static final String[] STMT_DROP_PACKAGE = {DROP, "PACKAGE"}; 182 static final String[] STMT_DROP_PROCEDURE = {DROP, "PROCEDURE"}; 183 static final String[] STMT_DROP_PROFILE = {DROP, "PROFILE"}; 184 static final String[] STMT_DROP_ROLE = {DROP, "ROLE"}; 185 static final String[] STMT_DROP_ROLLBACK = {DROP, "ROLLBACK"}; 186 static final String[] STMT_DROP_SEQUENCE = {DROP, "SEQUENCE"}; 187 static final String[] STMT_DROP_SYNONYM = {DROP, "SYNONYM"}; 188 static final String[] STMT_DROP_TABLESPACE = {DROP, "TABLESPACE"}; 189 static final String[] STMT_DROP_TRIGGER = {DROP, "TRIGGER"}; 190 static final String[] STMT_DROP_TYPE = {DROP, "TYPE"}; 191 static final String[] STMT_DROP_USER = {DROP, "USER"}; 192 193 static final String[] STMT_DROP_PUBLIC_DATABASE = {DROP, "PUBLIC", "DATABASE"}; 194 static final String[] STMT_DROP_PUBLIC_SYNONYM = {DROP, "PUBLIC", "SYNONYM"}; 195 196 static final String[][] DROP_PHRASES = {STMT_DROP_CLUSTER, STMT_DROP_CONTEXT, STMT_DROP_DATABASE, STMT_DROP_DIMENSION, 197 STMT_DROP_DIRECTORY, STMT_DROP_DISKGROUP, STMT_DROP_FUNCTION, STMT_DROP_INDEX, STMT_DROP_INDEXTYPE, STMT_DROP_JAVA, 198 STMT_DROP_LIBRARY, STMT_DROP_MATERIALIZED, STMT_DROP_OPERATOR, STMT_DROP_OUTLINE, STMT_DROP_PACKAGE, 199 STMT_DROP_PROCEDURE, STMT_DROP_PROFILE, STMT_DROP_ROLE, STMT_DROP_ROLLBACK, STMT_DROP_SEQUENCE, STMT_DROP_SYNONYM, 200 STMT_DROP_TABLESPACE, STMT_DROP_TRIGGER, STMT_DROP_TYPE, STMT_DROP_USER, STMT_DROP_PUBLIC_DATABASE, 201 STMT_DROP_PUBLIC_SYNONYM}; 202 203 static final String[] STMT_EXPLAIN_PLAN = {"EXPLAIN", "PLAN"}; 204 static final String[] STMT_FLASHBACK = {"FLASHBACK"}; 205 static final String[] STMT_LOCK_TABLE = {"LOCK", "TABLE"}; 206 static final String[] STMT_MERGE = {"MERGE"}; 207 static final String[] STMT_NOAUDIT = {"NOAUDIT"}; 208 static final String[] STMT_PURGE = {"PURGE"}; 209 static final String[] STMT_RENAME = {"RENAME"}; 210 static final String[] STMT_ROLLBACK_TO_SAVEPOINT = {"ROLLBACK", "TO", "SAVEPOINT"}; 211 static final String[] STMT_ROLLBACK_WORK = {"ROLLBACK", "WORK"}; 212 static final String[] STMT_ROLLBACK = {"ROLLBACK"}; 213 static final String[] STMT_SAVEPOINT = {"SAVEPOINT"}; 214 static final String[] STMT_SET_CONSTRAINT = {SET, "CONSTRAINT"}; 215 static final String[] STMT_SET_CONSTRAINTS = {SET, "CONSTRAINTS"}; 216 static final String[] STMT_SET_ROLE = {SET, "ROLE"}; 217 static final String[] STMT_SET_TRANSACTION = {SET, "TRANSACTION"}; 218 static final String[] STMT_TRUNCATE = {"TRUNCATE"}; 219 220 static final String[][] SET_PHRASES = {STMT_SET_CONSTRAINT, STMT_SET_CONSTRAINTS, STMT_SET_ROLE, STMT_SET_TRANSACTION}; 221 222 static final String[][] MISC_PHRASES = {STMT_ANALYZE, STMT_ASSOCIATE_STATISTICS, STMT_AUDIT, STMT_COMMIT_WORK, 223 STMT_COMMIT_WRITE, STMT_COMMIT_FORCE, STMT_COMMENT_ON, STMT_DISASSOCIATE_STATISTICS, STMT_EXPLAIN_PLAN, 224 STMT_FLASHBACK, STMT_LOCK_TABLE, STMT_MERGE, STMT_NOAUDIT, STMT_PURGE, STMT_RENAME, STMT_ROLLBACK_TO_SAVEPOINT, 225 STMT_ROLLBACK_WORK, STMT_ROLLBACK, STMT_SAVEPOINT, STMT_TRUNCATE}; 226 227 // CREATE TABLE, CREATE VIEW, and GRANT statements. 228 public final static String[] VALID_SCHEMA_CHILD_STMTS = {StandardDdlLexicon.TYPE_CREATE_TABLE_STATEMENT, 229 StandardDdlLexicon.TYPE_CREATE_VIEW_STATEMENT, StandardDdlLexicon.TYPE_GRANT_STATEMENT}; 230 231 public final static String[] COMPLEX_STMT_TYPES = {OracleDdlLexicon.TYPE_CREATE_FUNCTION_STATEMENT}; 232 } 233 234 interface OracleDataTypes { 235 static final String[] DTYPE_CHAR_ORACLE = {"CHAR"}; // CHAR(size [BYTE | CHAR]) 236 static final String[] DTYPE_VARCHAR2 = {"VARCHAR2"}; // VARCHAR2(size [BYTE | CHAR]) 237 static final String[] DTYPE_NVARCHAR2 = {"NVARCHAR2"}; // NVARCHAR2(size) 238 static final String[] DTYPE_NUMBER = {"NUMBER"}; // NUMBER(p,s) 239 static final String[] DTYPE_BINARY_FLOAT = {"BINARY_FLOAT "}; 240 static final String[] DTYPE_BINARY_DOUBLE = {"BINARY_DOUBLE"}; 241 static final String[] DTYPE_LONG = {"LONG"}; 242 static final String[] DTYPE_LONG_RAW = {"LONG", "RAW"}; 243 static final String[] DTYPE_RAW = {"RAW"}; // RAW(size) 244 static final String[] DTYPE_BLOB = {"BLOB"}; 245 static final String[] DTYPE_CLOB = {"CLOB"}; 246 static final String[] DTYPE_NCLOB = {"NCLOB"}; 247 static final String[] DTYPE_BFILE = {"BFILE"}; 248 static final String[] DTYPE_INTERVAL_YEAR = {"INTERVAL", "YEAR"}; // INTERVAL YEAR (year_precision) TO MONTH 249 static final String[] DTYPE_INTERVAL_DAY = {"INTERVAL", "DAY"}; // INTERVAL DAY (day_precision) TO SECOND 250 // (fractional_seconds_precision) 251 252 static final List<String[]> CUSTOM_DATATYPE_START_PHRASES = Arrays.asList(DTYPE_CHAR_ORACLE, 253 DTYPE_VARCHAR2, 254 DTYPE_NVARCHAR2, 255 DTYPE_NUMBER, 256 DTYPE_BINARY_FLOAT, 257 DTYPE_BINARY_DOUBLE, 258 DTYPE_LONG, 259 DTYPE_LONG_RAW, 260 DTYPE_RAW, 261 DTYPE_BLOB, 262 DTYPE_CLOB, 263 DTYPE_NCLOB, 264 DTYPE_BFILE, 265 DTYPE_INTERVAL_YEAR, 266 DTYPE_INTERVAL_DAY); 267 268 static final List<String> CUSTOM_DATATYPE_START_WORDS = Arrays.asList("VARCHAR2", 269 "NVARCHAR2", 270 "NUMBER", 271 "BINARY_FLOAT", 272 "BINARY_DOUBLE", 273 "LONG", 274 "RAW", 275 "BLOB", 276 "CLOB", 277 "NCLOB", 278 "BFILE", 279 "INTERVAL"); 280 } 281 282 interface IndexTypes { 283 String BITMAP_JOIN = "BITMAP"; 284 String CLUSTER = "CLUSTER"; 285 String TABLE = "TABLE"; 286 } 287}