不能使用保留字作为用户定义的变量。否则hibernate无法创建表。但是当加上双引号就可以,但是不推存。
关键字就可以作为用户定义的变量,但是不推存。
举例子:
(1)保留字
-- number
创建表,作为字段名。
SQL> CREATE TABLE cux_oyj_RESERVED_WORDS(NUMBER NUMBER);
CREATE TABLE cux_oyj_RESERVED_WORDS(NUMBER NUMBER)
ORA-00904: : 标识符无效
加上双引号,就可以
SQL> CREATE TABLE cux_oyj_RESERVED_WORDS("NUMBER" NUMBER);
Table created
但是查询:
SQL> SELECT rw.number from cux_oyj_RESERVED_WORDS rw;
SELECT rw.number from cux_oyj_RESERVED_WORDS rw
ORA-01747: user.table.column, table.column 或列说明无效
使用起来比较麻烦。
(2)关键字
--name
创建表,作为字段名。
SQL> CREATE TABLE cux_oyj_KEYWORDS(NAME VARCHAR2(50));
Table created
保留字与关键字的视图(动态视图)V$RESERVED_WORDS
This view gives a list of all SQL keywords. To determine whether a particular keyword is reserved in any way, check the RESERVED, RES_TYPE, RES_ATTR, and RES_SEMI columns.
Column | Datatype | Description |
---|---|---|
KEYWORD |
VARCHAR2(30) |
Name of the keyword |
LENGTH |
NUMBER |
Length of the keyword |
RESERVED |
VARCHAR2(1) |
A value of Y means that the keyword cannot be used as an identifier. A value of N means that it is not reserved. |
RES_TYPE |
VARCHAR2(1) |
A value of Y means that the keyword cannot be used as a type name. A value of N means that it is not reserved. |
RES_ATTR |
VARCHAR2(1) |
A value of Y means that the keyword cannot be used as an attribute name. A value of N means that it is not reserved. |
RES_SEMI |
VARCHAR2(1) |
A value of Y means that the keyword is not allowed as an identifier in certain situations, such as in DML. A value of N means that it is not reserved. |
DUPLICATE |
VARCHAR2(1) |
A value of Y means that the keyword is a duplicate of another keyword. A value of N means that it is not a duplicate. |
保留字:
Begins with: | Reserved Words |
---|---|
A |
ALL, ALTER, AND, ANY, AS, ASC, AT |
B |
BEGIN, BETWEEN, BY |
C |
CASE, CHECK, CLUSTERS, CLUSTER, COLAUTH, COLUMNS, COMPRESS, CONNECT, CRASH, CREATE, CURSOR |
D |
DECLARE, DEFAULT, DESC, DISTINCT, DROP |
E |
ELSE, END, EXCEPTION, EXCLUSIVE |
F |
FETCH, FOR, FROM, FUNCTION |
G |
GOTO, GRANT, GROUP |
H |
HAVING |
I |
IDENTIFIED, IF, IN, INDEX, INDEXES, INSERT, INTERSECT, INTO, IS |
L |
LIKE, LOCK |
M |
MINUS, MODE |
N |
NOCOMPRESS, NOT, NOWAIT, NULL |
O |
OF, ON, OPTION, OR, ORDER, OVERLAPS |
P |
PROCEDURE, PUBLIC |
R |
RESOURCE, REVOKE |
S |
SELECT, SHARE, SIZE, SQL, START, SUBTYPE |
T |
TABAUTH, TABLE, THEN, TO, TYPE |
U |
UNION, UNIQUE, UPDATE |
V |
VALUES, VIEW, VIEWS |
W |
WHEN, WHERE, WITH |
关键字:
Begins with: | Keywords |
---|---|
A |
A, ADD, AGENT, AGGREGATE, ARRAY, ATTRIBUTE, AUTHID, AVG |
B |
BFILE_BASE, BINARY, BLOB_BASE, BLOCK, BODY, BOTH, BOUND, BULK, BYTE |
C |
C, CALL, CALLING, CASCADE, CHAR, CHAR_BASE, CHARACTER, CHARSET, CHARSETFORM, CHARSETID, CLOB_BASE, CLOSE, COLLECT, COMMENT, COMMIT, COMMITTED, COMPILED, CONSTANT, CONSTRUCTOR, CONTEXT, CONTINUE, CONVERT, COUNT, CURRENT, CUSTOMDATUM |
D |
DANGLING, DATA, DATE, DATE_BASE, DAY, DEFINE, DELETE, DETERMINISTIC, DOUBLE, DURATION |
E |
ELEMENT, ELSIF, EMPTY, ESCAPE, EXCEPT, EXCEPTIONS, EXECUTE, EXISTS, EXIT, EXTERNAL |
F |
FINAL, FIXED, FLOAT, FORALL, FORCE |
G |
GENERAL |
H |
HASH, HEAP, HIDDEN, HOUR |
I |
IMMEDIATE, INCLUDING, INDICATOR, INDICES, INFINITE, INSTANTIABLE, INT, INTERFACE, INTERVAL, INVALIDATE, ISOLATION |
J |
JAVA |
L |
LANGUAGE, LARGE, LEADING, LENGTH, LEVEL, LIBRARY, LIKE2, LIKE4, LIKEC, LIMIT, LIMITED, LOCAL, LONG, LOOP |
M |
MAP, MAX, MAXLEN, MEMBER, MERGE, MIN, MINUTE, MOD, MODIFY, MONTH, MULTISET |
N |
NAME, NAN, NATIONAL, NATIVE, NCHAR, NEW, NOCOPY, NUMBER_BASE |
O |
OBJECT, OCICOLL, OCIDATE, OCIDATETIME, OCIDURATION, OCIINTERVAL, OCILOBLOCATOR, OCINUMBER, OCIRAW, OCIREF, OCIREFCURSOR, OCIROWID, OCISTRING, OCITYPE, OLD, ONLY, OPAQUE, OPEN, OPERATOR, ORACLE, ORADATA, ORGANIZATION, ORLANY, ORLVARY, OTHERS, OUT, OVERRIDING |
P |
PACKAGE, PARALLEL_ENABLE, PARAMETER, PARAMETERS, PARENT, PARTITION, PASCAL, PIPE, PIPELINED, PRAGMA, PRECISION, PRIOR, PRIVATE |
R |
RAISE, RANGE, RAW, READ, RECORD, REF, REFERENCE, RELIES_ON, REM, REMAINDER, RENAME, RESULT, RESULT_CACHE, RETURN, RETURNING, REVERSE, ROLLBACK, ROW |
S |
SAMPLE, SAVE, SAVEPOINT, SB1, SB2, SB4, SECOND, SEGMENT, SELF, SEPARATE, SEQUENCE, SERIALIZABLE, SET, SHORT, SIZE_T, SOME, SPARSE, SQLCODE, SQLDATA, SQLNAME, SQLSTATE, STANDARD, STATIC, STDDEV, STORED, STRING, STRUCT, STYLE, SUBMULTISET, SUBPARTITION, SUBSTITUTABLE, SUM, SYNONYM |
T |
TDO, THE, TIME, TIMESTAMP, TIMEZONE_ABBR, TIMEZONE_HOUR, TIMEZONE_MINUTE, TIMEZONE_REGION, TRAILING, TRANSACTION, TRANSACTIONAL, TRUSTED |
U |
UB1, UB2, UB4, UNDER, UNSIGNED, UNTRUSTED, USE, USING |
V |
VALIST, VALUE, VARIABLE, VARIANCE, VARRAY, VARYING, VOID |
W |
WHILE, WORK, WRAPPED, WRITE |
Y |
YEAR |
Z |
ZONE |