OracleReservedWords   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 502
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 502
ccs 2
cts 2
cp 1
rs 10
wmc 1
lcom 1
cbo 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A isReserved() 0 4 1
1
<?php
2
3
namespace Yajra\Oci8;
4
5
use Illuminate\Support\Str;
6
7
trait OracleReservedWords
8
{
9
    /**
10
     * Lists of reserved words.
11
     *
12
     * @see https://docs.oracle.com/cd/B19306_01/em.102/b40103/app_oracle_reserved_words.htm
13
     * @var array
14
     */
15
    protected $reserves = [
16
        'ACCESS',
17
        'ACCOUNT',
18
        'ACTIVATE',
19
        'ADD',
20
        'ADMIN',
21
        'ADVISE',
22
        'AFTER',
23
        'ALL',
24
        'ALL_ROWS',
25
        'ALLOCATE',
26
        'ALTER',
27
        'ANALYZE',
28
        'AND',
29
        'ANY',
30
        'ARCHIVE',
31
        'ARCHIVELOG',
32
        'ARRAY',
33
        'AS',
34
        'ASC',
35
        'AT',
36
        'AUDIT',
37
        'AUTHENTICATED',
38
        'AUTHORIZATION',
39
        'AUTOEXTEND',
40
        'AUTOMATIC',
41
        'BACKUP',
42
        'BECOME',
43
        'BEFORE',
44
        'BEGIN',
45
        'BETWEEN',
46
        'BFILE',
47
        'BITMAP',
48
        'BLOB',
49
        'BLOCK',
50
        'BODY',
51
        'BY',
52
        'CACHE',
53
        'CACHE_INSTANCES',
54
        'CANCEL',
55
        'CASCADE',
56
        'CAST',
57
        'CFILE',
58
        'CHAINED',
59
        'CHANGE',
60
        'CHAR',
61
        'CHAR_CS',
62
        'CHARACTER',
63
        'CHECK',
64
        'CHECKPOINT',
65
        'CHOOSE',
66
        'CHUNK',
67
        'CLEAR',
68
        'CLOB',
69
        'CLONE',
70
        'CLOSE',
71
        'CLOSE_CACHED_OPEN_CURSORS',
72
        'CLUSTER',
73
        'COALESCE',
74
        'COLUMN',
75
        'COLUMNS',
76
        'COMMENT',
77
        'COMMIT',
78
        'COMMITTED',
79
        'COMPATIBILITY',
80
        'COMPILE',
81
        'COMPLETE',
82
        'COMPOSITE_LIMIT',
83
        'COMPRESS',
84
        'COMPUTE',
85
        'CONNECT',
86
        'CONNECT_TIME',
87
        'CONSTRAINT',
88
        'CONSTRAINTS',
89
        'CONTENTS',
90
        'CONTINUE',
91
        'CONTROLFILE',
92
        'CONVERT',
93
        'COST',
94
        'CPU_PER_CALL',
95
        'CPU_PER_SESSION',
96
        'CREATE',
97
        'CURRENT',
98
        'CURRENT_SCHEMA',
99
        'CURREN_USER',
100
        'CURSOR',
101
        'CYCLE',
102
        'DANGLING',
103
        'DATABASE',
104
        'DATAFILE',
105
        'DATAFILES',
106
        'DATAOBJNO',
107
        'DATE',
108
        'DBA',
109
        'DBHIGH',
110
        'DBLOW',
111
        'DBMAC',
112
        'DEALLOCATE',
113
        'DEBUG',
114
        'DEC',
115
        'DECIMAL',
116
        'DECLARE',
117
        'DEFAULT',
118
        'DEFERRABLE',
119
        'DEFERRED',
120
        'DEGREE',
121
        'DELETE',
122
        'DEREF',
123
        'DESC',
124
        'DIRECTORY',
125
        'DISABLE',
126
        'DISCONNECT',
127
        'DISMOUNT',
128
        'DISTINCT',
129
        'DISTRIBUTED',
130
        'DML',
131
        'DOUBLE',
132
        'DROP',
133
        'DUMP',
134
        'EACH',
135
        'ELSE',
136
        'ENABLE',
137
        'END',
138
        'ENFORCE',
139
        'ENTRY',
140
        'ESCAPE',
141
        'EXCEPT',
142
        'EXCEPTIONS',
143
        'EXCHANGE',
144
        'EXCLUDING',
145
        'EXCLUSIVE',
146
        'EXECUTE',
147
        'EXISTS',
148
        'EXPIRE',
149
        'EXPLAIN',
150
        'EXTENT',
151
        'EXTENTS',
152
        'EXTERNALLY',
153
        'FAILED_LOGIN_ATTEMPTS',
154
        'FALSE',
155
        'FAST',
156
        'FILE',
157
        'FIRST_ROWS',
158
        'FLAGGER',
159
        'FLOAT',
160
        'FLOB',
161
        'FLUSH',
162
        'FOR',
163
        'FORCE',
164
        'FOREIGN',
165
        'FREELIST',
166
        'FREELISTS',
167
        'FROM',
168
        'FULL',
169
        'FUNCTION',
170
        'GLOBAL',
171
        'GLOBALLY',
172
        'GLOBAL_NAME',
173
        'GRANT',
174
        'GROUP',
175
        'GROUPS',
176
        'HASH',
177
        'HASHKEYS',
178
        'HAVING',
179
        'HEADER',
180
        'HEAP',
181
        'IDENTIFIED',
182
        'IDGENERATORS',
183
        'IDLE_TIME',
184
        'IF',
185
        'IMMEDIATE',
186
        'IN',
187
        'INCLUDING',
188
        'INCREMENT',
189
        'INDEX',
190
        'INDEXED',
191
        'INDEXES',
192
        'INDICATOR',
193
        'IND_PARTITION',
194
        'INITIAL',
195
        'INITIALLY',
196
        'INITRANS',
197
        'INSERT',
198
        'INSTANCE',
199
        'INSTANCES',
200
        'INSTEAD',
201
        'INT',
202
        'INTEGER',
203
        'INTERMEDIATE',
204
        'INTERSECT',
205
        'INTO',
206
        'IS',
207
        'ISOLATION',
208
        'ISOLATION_LEVEL',
209
        'KEEP',
210
        'KEY',
211
        'KILL',
212
        'LABEL',
213
        'LAYER',
214
        'LESS',
215
        'LEVEL',
216
        'LIBRARY',
217
        'LIKE',
218
        'LIMIT',
219
        'LINK',
220
        'LIST',
221
        'LOB',
222
        'LOCAL',
223
        'LOCK',
224
        'LOCKED',
225
        'LOG',
226
        'LOGFILE',
227
        'LOGGING',
228
        'LOGICAL_READS_PER_CALL',
229
        'LOGICAL_READS_PER_SESSION',
230
        'LONG',
231
        'MANAGE',
232
        'MASTER',
233
        'MAX',
234
        'MAXARCHLOGS',
235
        'MAXDATAFILES',
236
        'MAXEXTENTS',
237
        'MAXINSTANCES',
238
        'MAXLOGFILES',
239
        'MAXLOGHISTORY',
240
        'MAXLOGMEMBERS',
241
        'MAXSIZE',
242
        'MAXTRANS',
243
        'MAXVALUE',
244
        'MIN',
245
        'MEMBER',
246
        'MINIMUM',
247
        'MINEXTENTS',
248
        'MINUS',
249
        'MINVALUE',
250
        'MLSLABEL',
251
        'MLS_LABEL_FORMAT',
252
        'MODE',
253
        'MODIFY',
254
        'MOUNT',
255
        'MOVE',
256
        'MTS_DISPATCHERS',
257
        'MULTISET',
258
        'NATIONAL',
259
        'NCHAR',
260
        'NCHAR_CS',
261
        'NCLOB',
262
        'NEEDED',
263
        'NESTED',
264
        'NETWORK',
265
        'NEW',
266
        'NEXT',
267
        'NOARCHIVELOG',
268
        'NOAUDIT',
269
        'NOCACHE',
270
        'NOCOMPRESS',
271
        'NOCYCLE',
272
        'NOFORCE',
273
        'NOLOGGING',
274
        'NOMAXVALUE',
275
        'NOMINVALUE',
276
        'NONE',
277
        'NOORDER',
278
        'NOOVERRIDE',
279
        'NOPARALLEL',
280
        'NOPARALLEL',
281
        'NOREVERSE',
282
        'NORMAL',
283
        'NOSORT',
284
        'NOT',
285
        'NOTHING',
286
        'NOWAIT',
287
        'NULL',
288
        'NUMBER',
289
        'NUMERIC',
290
        'NVARCHAR2',
291
        'OBJECT',
292
        'OBJNO',
293
        'OBJNO_REUSE',
294
        'OF',
295
        'OFF',
296
        'OFFLINE',
297
        'OID',
298
        'OIDINDEX',
299
        'OLD',
300
        'ON',
301
        'ONLINE',
302
        'ONLY',
303
        'OPCODE',
304
        'OPEN',
305
        'OPTIMAL',
306
        'OPTIMIZER_GOAL',
307
        'OPTION',
308
        'OR',
309
        'ORDER',
310
        'ORGANIZATION',
311
        'OSLABEL',
312
        'OVERFLOW',
313
        'OWN',
314
        'PACKAGE',
315
        'PARALLEL',
316
        'PARTITION',
317
        'PASSWORD',
318
        'PASSWORD_GRACE_TIME',
319
        'PASSWORD_LIFE_TIME',
320
        'PASSWORD_LOCK_TIME',
321
        'PASSWORD_REUSE_MAX',
322
        'PASSWORD_REUSE_TIME',
323
        'PASSWORD_VERIFY_FUNCTION',
324
        'PCTFREE',
325
        'PCTINCREASE',
326
        'PCTTHRESHOLD',
327
        'PCTUSED',
328
        'PCTVERSION',
329
        'PERCENT',
330
        'PERMANENT',
331
        'PLAN',
332
        'PLSQL_DEBUG',
333
        'POST_TRANSACTION',
334
        'PRECISION',
335
        'PRESERVE',
336
        'PRIMARY',
337
        'PRIOR',
338
        'PRIVATE',
339
        'PRIVATE_SGA',
340
        'PRIVILEGE',
341
        'PRIVILEGES',
342
        'PROCEDURE',
343
        'PROFILE',
344
        'PUBLIC',
345
        'PURGE',
346
        'QUEUE',
347
        'QUOTA',
348
        'RANGE',
349
        'RAW',
350
        'RBA',
351
        'READ',
352
        'READUP',
353
        'REAL',
354
        'REBUILD',
355
        'RECOVER',
356
        'RECOVERABLE',
357
        'RECOVERY',
358
        'REF',
359
        'REFERENCES',
360
        'REFERENCING',
361
        'REFRESH',
362
        'RENAME',
363
        'REPLACE',
364
        'RESET',
365
        'RESETLOGS',
366
        'RESIZE',
367
        'RESOURCE',
368
        'RESTRICTED',
369
        'RETURN',
370
        'RETURNING',
371
        'REUSE',
372
        'REVERSE',
373
        'REVOKE',
374
        'ROLE',
375
        // 'ROLES',
376
        'ROLLBACK',
377
        'ROW',
378
        'ROWID',
379
        'ROWNUM',
380
        'ROWS',
381
        'RULE',
382
        'SAMPLE',
383
        'SAVEPOINT',
384
        'SB4',
385
        'SCAN_INSTANCES',
386
        'SCHEMA',
387
        'SCN',
388
        'SCOPE',
389
        'SD_ALL',
390
        'SD_INHIBIT',
391
        'SD_SHOW',
392
        'SEGMENT',
393
        'SEG_BLOCK',
394
        'SEG_FILE',
395
        'SELECT',
396
        'SEQUENCE',
397
        'SERIALIZABLE',
398
        'SESSION',
399
        'SESSION_CACHED_CURSORS',
400
        'SESSIONS_PER_USER',
401
        'SET',
402
        'SHARE',
403
        'SHARED',
404
        'SHARED_POOL',
405
        'SHRINK',
406
        'SIZE',
407
        'SKIP',
408
        'SKIP_UNUSABLE_INDEXES',
409
        'SMALLINT',
410
        'SNAPSHOT',
411
        'SOME',
412
        'SORT',
413
        'SPECIFICATION',
414
        'SPLIT',
415
        'SQL_TRACE',
416
        'STANDBY',
417
        'START',
418
        'STATEMENT_ID',
419
        'STATISTICS',
420
        'STOP',
421
        'STORAGE',
422
        'STORE',
423
        'STRUCTURE',
424
        'SUCCESSFUL',
425
        'SWITCH',
426
        'SYS_OP_ENFORCE_NOT_NULL$',
427
        'SYS_OP_NTCIMG$',
428
        'SYNONYM',
429
        'SYSDATE',
430
        'SYSDBA',
431
        'SYSOPER',
432
        // 'SYSTEM',
433
        'TABLE',
434
        'TABLES',
435
        'TABLESPACE',
436
        'TABLESPACE_NO',
437
        'TABNO',
438
        'TEMPORARY',
439
        'THAN',
440
        'THE',
441
        'THEN',
442
        'THREAD',
443
        'TIMESTAMP',
444
        'TIME',
445
        'TO',
446
        'TOPLEVEL',
447
        'TRACE',
448
        'TRACING',
449
        'TRANSACTION',
450
        'TRANSITIONAL',
451
        'TRIGGER',
452
        'TRIGGERS',
453
        'TRUE',
454
        'TRUNCATE',
455
        'TX',
456
        // 'TYPE',
457
        'UB2',
458
        'UBA',
459
        'UID',
460
        'UNARCHIVED',
461
        'UNDO',
462
        'UNION',
463
        'UNIQUE',
464
        'UNLIMITED',
465
        'UNLOCK',
466
        'UNRECOVERABLE',
467
        'UNTIL',
468
        'UNUSABLE',
469
        'UNUSED',
470
        'UPDATABLE',
471
        'UPDATE',
472
        'USAGE',
473
        'USE',
474
        'USER',
475
        'USING',
476
        'VALIDATE',
477
        'VALIDATION',
478
        'VALUE',
479
        'VALUES',
480
        'VARCHAR',
481
        'VARCHAR2',
482
        'VARYING',
483
        'VIEW',
484
        'WHEN',
485
        'WHENEVER',
486
        'WHERE',
487
        'WITH',
488
        'WITHOUT',
489
        'WORK',
490
        'WRITE',
491
        'WRITEDOWN',
492
        'WRITEUP',
493
        'XID',
494
        'YEAR',
495
        'ZONE',
496
    ];
497
498
    /**
499
     * Check if value is an Oracle reserved word.
500
     *
501
     * @param string $value
502
     * @return bool
503
     */
504 378
    public function isReserved($value)
505
    {
506 378
        return in_array(Str::upper(trim($value)), $this->reserves, true);
507
    }
508
}
509