您的位置:首页 > 数据库

数据库设计中SQL保留字(Reserved words)的问题

2011-04-28 10:52 253 查看
最近在做MP项目的时候涉及到Oracle10gR2数据库相关的编程,需要一些测试数据,我就在SQL Developer中用SQL语句向表中添加记录:

INSERT INTO UserActionLog (log_source,user,action,terminal,time) VALUES (...);

运行该脚本显示出错:ORA-01747:user.table.column,table column或列说明无效。

但我在图形界面下手动向表格中添加内容就可以提交成功,控制台显示生成的SQL语句是:

INSERT INTO "SYSTEM"."UserActionLog" ("log_source","user","action","terminal","time") VALUES (...,TO_DATE('28-4月-11‘,'DD-MON-RR'));

对比SQL语句可以发现有两点不同:

1.所有的表名、列名都包含在双引号中

2.添加了SYSTEM表空间

于是我尝试只添加表空间SYSTEM,发现依然报错;只添加双引号,也是报错。看来只有同时应用才可以。

这让我想到了《Oracle Database 10g 完全参考手册》中创建数据表的一些建议(P280):

-“各列定义由逗号分隔,...表名和列名必须以字母表中的字母开始,可以包括字母,数字和下划线,长度为1~30个字符,...,不能用Oracle保留字”

-“如果名称没有用双引号括起来,则在创建表时不用考虑字母的大小写”

-“注意:不要用双引号把表名和列名括起来,否则将出问题,这会给用户和开发者造成灾难”

我百度了一下ORA-01747,发现普遍是由于保留字引起的,在SQL语句输入界面,user和time确实被高亮了,就像INSER INTO一样。

查看Oracle保留字的SQL语句:

SELECT * FROM v$reserved_words;

Oracle保留字有:

选定了 1,142 行

!

&

(

)

*

+

,

-

------------------------------

.

/

:

<

<<

=

>

@

A

ABORT

ACCESS

ACCESSED

ACCOUNT

ACTIVATE

ADD

ADMIN

ADMINISTER

ADMINISTRATOR

ADVISE

ADVISOR

AFTER

ALIAS

ALL

ALLOCATE

ALLOW

ALL_ROWS

ALTER

ALWAYS

ANALYZE

ANCILLARY

AND

AND_EQUAL

ANTIJOIN

ANY

APPEND

APPLY

ARCHIVE

ARCHIVELOG

ARRAY

AS

ASC

ASSOCIATE

AT

ATTRIBUTE

ATTRIBUTES

AUDIT

AUTHENTICATED

AUTHENTICATION

AUTHID

AUTHORIZATION

AUTO

AUTOALLOCATE

AUTOEXTEND

AUTOMATIC

AVAILABILITY

BACKUP

BATCH

BECOME

BEFORE

BEGIN

BEGIN_OUTLINE_DATA

BEHALF

BETWEEN

BFILE

BIGFILE

BINARY_DOUBLE

BINARY_DOUBLE_INFINITY

BINARY_DOUBLE_NAN

BINARY_FLOAT

BINARY_FLOAT_INFINITY

BINARY_FLOAT_NAN

BINDING

BITMAP

BITMAPS

BITMAP_TREE

BITS

BLOB

BLOCK

BLOCKS

BLOCKSIZE

BLOCK_RANGE

BODY

BOTH

BOUND

BROADCAST

BUFFER

BUFFER_CACHE

BUFFER_POOL

BUILD

BULK

BY

BYPASS_RECURSIVE_CHECK

BYPASS_UJVC

BYTE

CACHE

CACHE_CB

CACHE_INSTANCES

CACHE_TEMP_TABLE

CALL

CANCEL

CARDINALITY

CASCADE

CASE

CAST

CATEGORY

CERTIFICATE

CFILE

CHAINED

CHANGE

CHAR

CHARACTER

CHAR_CS

CHECK

CHECKPOINT

CHILD

CHOOSE

CHUNK

CIV_GB

CLASS

CLEAR

CLOB

CLONE

CLOSE

CLOSE_CACHED_OPEN_CURSORS

CLUSTER

CLUSTERING_FACTOR

COALESCE

COARSE

COLLECT

COLUMN

COLUMNS

COLUMN_STATS

COLUMN_VALUE

COMMENT

COMMIT

COMMITTED

COMPACT

COMPATIBILITY

COMPILE

COMPLETE

COMPOSITE_LIMIT

COMPRESS

COMPUTE

CONFORMING

CONNECT

CONNECT_BY_COST_BASED

CONNECT_BY_FILTERING

CONNECT_BY_ISCYCLE

CONNECT_BY_ISLEAF

CONNECT_BY_ROOT

CONNECT_TIME

CONSIDER

CONSISTENT

CONSTRAINT

CONSTRAINTS

CONTAINER

CONTENT

CONTENTS

CONTEXT

CONTINUE

CONTROLFILE

CONVERT

CORRUPTION

COST

CPU_COSTING

CPU_PER_CALL

CPU_PER_SESSION

CREATE

CREATE_STORED_OUTLINES

CROSS

CUBE

CUBE_GB

CURRENT

CURRENT_DATE

CURRENT_SCHEMA

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_USER

CURSOR

CURSOR_SHARING_EXACT

CURSOR_SPECIFIC_SEGMENT

CYCLE

DANGLING

DATA

DATABASE

DATAFILE

DATAFILES

DATAOBJNO

DATE

DATE_MODE

DAY

DBA

DBA_RECYCLEBIN

DBMS_STATS

DBTIMEZONE

DB_ROLE_CHANGE

DDL

DEALLOCATE

DEBUG

DEC

DECIMAL

DECLARE

DECREMENT

DECRYPT

DEFAULT

DEFERRABLE

DEFERRED

DEFINED

DEFINER

DEGREE

DELAY

DELETE

DEMAND

DENSE_RANK

DEQUEUE

DEREF

DEREF_NO_REWRITE

DESC

DETACHED

DETERMINES

DICTIONARY

DIMENSION

DIRECTORY

DISABLE

DISABLE_RPKE

DISASSOCIATE

DISCONNECT

DISK

DISKGROUP

DISKS

DISMOUNT

DISTINCT

DISTINGUISHED

DISTRIBUTED

DML

DML_UPDATE

DOCUMENT

DOMAIN_INDEX_NO_SORT

DOMAIN_INDEX_SORT

DOUBLE

DOWNGRADE

DRIVING_SITE

DROP

DUMP

DYNAMIC

DYNAMIC_SAMPLING

DYNAMIC_SAMPLING_EST_CDN

E

EACH

ELEMENT

ELIMINATE_JOIN

ELIMINATE_OBY

ELIMINATE_OUTER_JOIN

ELSE

EMPTY

ENABLE

ENCRYPT

ENCRYPTION

END

END_OUTLINE_DATA

ENFORCE

ENFORCED

ENQUEUE

ENTERPRISE

ENTRY

ERROR

ERRORS

ERROR_ON_OVERLAP_TIME

ESCAPE

ESTIMATE

EVALNAME

EVALUATION

EVENTS

EXCEPT

EXCEPTIONS

EXCHANGE

EXCLUDING

EXCLUSIVE

EXECUTE

EXEMPT

EXISTS

EXPAND_GSET_TO_UNION

EXPIRE

EXPLAIN

EXPLOSION

EXPORT

EXPR_CORR_CHECK

EXTENDS

EXTENT

EXTENTS

EXTERNAL

EXTERNALLY

EXTRACT

FACT

FAILED

FAILED_LOGIN_ATTEMPTS

FAILGROUP

FALSE

FAST

FBTSCAN

FIC_CIV

FIC_PIV

FILE

FILTER

FINAL

FINE

FINISH

FIRST

FIRST_ROWS

FLAGGER

FLASHBACK

FLOAT

FLOB

FLUSH

FOLLOWING

FOR

FORCE

FORCE_XML_QUERY_REWRITE

FOREIGN

FREELIST

FREELISTS

FREEPOOLS

FRESH

FROM

FULL

FUNCTION

FUNCTIONS

G

GATHER_PLAN_STATISTICS

GBY_CONC_ROLLUP

GENERATED

GLOBAL

GLOBALLY

GLOBAL_NAME

GLOBAL_TOPIC_ENABLED

GRANT

GROUP

GROUPING

GROUPS

GROUP_BY

GUARANTEE

GUARANTEED

GUARD

HASH

HASHKEYS

HASH_AJ

HASH_SJ

HAVING

HEADER

HEAP

HIERARCHY

HIGH

HINTSET_BEGIN

HINTSET_END

HOUR

HWM_BROKERED

ID

IDENTIFIED

IDENTIFIER

IDENTITY

IDGENERATORS

IDLE_TIME

IF

IGNORE

IGNORE_OPTIM_EMBEDDED_HINTS

IGNORE_WHERE_CLAUSE

IMMEDIATE

IMPORT

IN

INCLUDE_VERSION

INCLUDING

INCREMENT

INCREMENTAL

INDEX

INDEXED

INDEXES

INDEXTYPE

INDEXTYPES

INDEX_ASC

INDEX_COMBINE

INDEX_DESC

INDEX_FFS

INDEX_FILTER

INDEX_JOIN

INDEX_ROWS

INDEX_RRS

INDEX_RS

INDEX_RS_ASC

INDEX_RS_DESC

INDEX_SCAN

INDEX_SKIP_SCAN

INDEX_SS

INDEX_SS_ASC

INDEX_SS_DESC

INDEX_STATS

INDICATOR

INFINITE

INFORMATIONAL

INITIAL

INITIALIZED

INITIALLY

INITRANS

INLINE

INLINE_XMLTYPE_NT

INNER

INSERT

INSTANCE

INSTANCES

INSTANTIABLE

INSTANTLY

INSTEAD

INT

INTEGER

INTERMEDIATE

INTERNAL_CONVERT

INTERNAL_USE

INTERPRETED

INTERSECT

INTERVAL

INTO

INVALIDATE

IN_MEMORY_METADATA

IS

ISOLATION

ISOLATION_LEVEL

ITERATE

ITERATION_NUMBER

JAVA

JOB

JOIN

K

KEEP

KERBEROS

KEY

KEYS

KEYSIZE

KEYWORD

KEY_LENGTH

KILL

LAST

LATERAL

LAYER

LDAP_REGISTRATION

LDAP_REGISTRATION_ENABLED

LDAP_REG_SYNC_INTERVAL

LEADING

LEFT

LENGTH

LESS

LEVEL

LEVELS

LIBRARY

LIKE

LIKE2

LIKE4

LIKEC

LIKE_EXPAND

LIMIT

LINK

LIST

LOB

LOCAL

LOCALTIME

LOCALTIMESTAMP

LOCAL_INDEXES

LOCATION

LOCATOR

LOCK

LOCKED

LOG

LOGFILE

LOGGING

LOGICAL

LOGICAL_READS_PER_CALL

LOGICAL_READS_PER_SESSION

LOGOFF

LOGON

LONG

M

MAIN

MANAGE

MANAGED

MANAGEMENT

MANUAL

MAPPING

MASTER

MATCHED

MATERIALIZE

MATERIALIZED

MAX

MAXARCHLOGS

MAXDATAFILES

MAXEXTENTS

MAXIMIZE

MAXINSTANCES

MAXLOGFILES

MAXLOGHISTORY

MAXLOGMEMBERS

MAXSIZE

MAXTRANS

MAXVALUE

MEASURES

MEMBER

MEMORY

MERGE

MERGE_AJ

MERGE_CONST_ON

MERGE_SJ

METHOD

MIGRATE

MIN

MINEXTENTS

MINIMIZE

MINIMUM

MINUS

MINUS_NULL

MINUTE

MINVALUE

MIRROR

MLSLABEL

MODE

MODEL

MODEL_COMPILE_SUBQUERY

MODEL_DONTVERIFY_UNIQUENESS

MODEL_DYNAMIC_SUBQUERY

MODEL_MIN_ANALYSIS

MODEL_NO_ANALYSIS

MODEL_PBY

MODEL_PUSH_REF

MODIFY

MONITORING

MONTH

MOUNT

MOVE

MOVEMENT

MULTISET

MV_MERGE

NAME

NAMED

NAN

NATIONAL

NATIVE

NATIVE_FULL_OUTER_JOIN

NATURAL

NAV

NCHAR

NCHAR_CS

NCLOB

NEEDED

NESTED

NESTED_TABLE_FAST_INSERT

NESTED_TABLE_GET_REFS

NESTED_TABLE_ID

NESTED_TABLE_SET_REFS

NESTED_TABLE_SET_SETID

NETWORK

NEVER

NEW

NEXT

NLS_CALENDAR

NLS_CHARACTERSET

NLS_COMP

NLS_CURRENCY

NLS_DATE_FORMAT

NLS_DATE_LANGUAGE

NLS_ISO_CURRENCY

NLS_LANG

NLS_LANGUAGE

NLS_LENGTH_SEMANTICS

NLS_NCHAR_CONV_EXCP

NLS_NUMERIC_CHARACTERS

NLS_SORT

NLS_SPECIAL_CHARS

NLS_TERRITORY

NL_AJ

NL_SJ

NO

NOAPPEND

NOARCHIVELOG

NOAUDIT

NOCACHE

NOCOMPRESS

NOCPU_COSTING

NOCYCLE

NODELAY

NOFORCE

NOGUARANTEE

NOLOGGING

NOMAPPING

NOMAXVALUE

NOMINIMIZE

NOMINVALUE

NOMONITORING

NONE

NOORDER

NOOVERRIDE

NOPARALLEL

NOPARALLEL_INDEX

NORELY

NOREPAIR

NORESETLOGS

NOREVERSE

NOREWRITE

NORMAL

NOROWDEPENDENCIES

NOSEGMENT

NOSORT

NOSTRICT

NOSWITCH

NOT

NOTHING

NOTIFICATION

NOVALIDATE

NOWAIT

NO_ACCESS

NO_BASETABLE_MULTIMV_REWRITE

NO_BUFFER

NO_CARTESIAN

NO_CONNECT_BY_COST_BASED

NO_CONNECT_BY_FILTERING

NO_CPU_COSTING

NO_ELIMINATE_JOIN

NO_ELIMINATE_OBY

NO_ELIMINATE_OUTER_JOIN

NO_EXPAND

NO_EXPAND_GSET_TO_UNION

NO_FACT

NO_FILTERING

NO_INDEX

NO_INDEX_FFS

NO_INDEX_RS

NO_INDEX_SS

NO_MERGE

NO_MODEL_PUSH_REF

NO_MONITORING

NO_MULTIMV_REWRITE

NO_NATIVE_FULL_OUTER_JOIN

NO_ORDER_ROLLUPS

NO_PARALLEL

NO_PARALLEL_INDEX

NO_PARTIAL_COMMIT

NO_PRUNE_GSETS

NO_PULL_PRED

NO_PUSH_PRED

NO_PUSH_SUBQ

NO_PX_JOIN_FILTER

NO_QKN_BUFF

NO_QUERY_TRANSFORMATION

NO_REF_CASCADE

NO_REWRITE

NO_SEMIJOIN

NO_SET_TO_JOIN

NO_SQL_TUNE

NO_STAR_TRANSFORMATION

NO_STATS_GSETS

NO_SWAP_JOIN_INPUTS

NO_TEMP_TABLE

NO_UNNEST

NO_USE_HASH

NO_USE_HASH_AGGREGATION

NO_USE_MERGE

NO_USE_NL

NO_XML_DML_REWRITE

NO_XML_QUERY_REWRITE

NULL

NULLS

NUMBER

NUMERIC

NUM_INDEX_KEYS

NVARCHAR2

OBJECT

OBJNO

OBJNO_REUSE

OF

OFF

OFFLINE

OID

OIDINDEX

OLD

OLD_PUSH_PRED

ON

ONLINE

ONLY

OPAQUE

OPAQUE_TRANSFORM

OPAQUE_XCANONICAL

OPCODE

OPEN

OPERATOR

OPTIMAL

OPTIMIZER_FEATURES_ENABLE

OPTIMIZER_GOAL

OPTION

OPT_ESTIMATE

OPT_PARAM

OR

ORA_ROWSCN

ORDER

ORDERED

ORDERED_PREDICATES

ORDINALITY

ORGANIZATION

OR_EXPAND

OUTER

OUTLINE

OUTLINE_LEAF

OUT_OF_LINE

OVER

OVERFLOW

OVERFLOW_NOMOVE

OVERLAPS

OWN

P

PACKAGE

PACKAGES

PARALLEL

PARALLEL_INDEX

PARAMETERS

PARENT

PARITY

PARTIALLY

PARTITION

PARTITIONS

PARTITION_HASH

PARTITION_LIST

PARTITION_RANGE

PASSING

PASSWORD

PASSWORD_GRACE_TIME

PASSWORD_LIFE_TIME

PASSWORD_LOCK_TIME

PASSWORD_REUSE_MAX

PASSWORD_REUSE_TIME

PASSWORD_VERIFY_FUNCTION

PATH

PATHS

PCTFREE

PCTINCREASE

PCTTHRESHOLD

PCTUSED

PCTVERSION

PERCENT

PERFORMANCE

PERMANENT

PFILE

PHYSICAL

PIV_GB

PIV_SSF

PLAN

PLSQL_CCFLAGS

PLSQL_CODE_TYPE

PLSQL_DEBUG

PLSQL_OPTIMIZE_LEVEL

PLSQL_WARNINGS

POINT

POLICY

POST_TRANSACTION

POWER

PQ_DISTRIBUTE

PQ_MAP

PQ_NOMAP

PREBUILT

PRECEDING

PRECISION

PRECOMPUTE_SUBQUERY

PREPARE

PRESENT

PRESERVE

PRESERVE_OID

PRIMARY

PRIOR

PRIVATE

PRIVATE_SGA

PRIVILEGE

PRIVILEGES

PROCEDURE

PROFILE

PROGRAM

PROJECT

PROTECTED

PROTECTION

PUBLIC

PULL_PRED

PURGE

PUSH_PRED

PUSH_SUBQ

PX_GRANULE

PX_JOIN_FILTER

QB_NAME

QUERY

QUERY_BLOCK

QUEUE

QUEUE_CURR

QUEUE_ROWP

QUIESCE

QUOTA

RANDOM

RANGE

RAPIDLY

RAW

RBA

RBO_OUTLINE

READ

READS

REAL

REBALANCE

REBUILD

RECORDS_PER_BLOCK

RECOVER

RECOVERABLE

RECOVERY

RECYCLE

RECYCLEBIN

REDUCED

REDUNDANCY

REF

REFERENCE

REFERENCED

REFERENCES

REFERENCING

REFRESH

REF_CASCADE_CURSOR

REGEXP_LIKE

REGISTER

REJECT

REKEY

RELATIONAL

RELY

REMOTE_MAPPED

RENAME

REPAIR

REPLACE

REQUIRED

RESET

RESETLOGS

RESIZE

RESOLVE

RESOLVER

RESOURCE

RESTORE

RESTORE_AS_INTERVALS

RESTRICT

RESTRICTED

RESTRICT_ALL_REF_CONS

RESUMABLE

RESUME

RETENTION

RETURN

RETURNING

REUSE

REVERSE

REVOKE

REWRITE

REWRITE_OR_ERROR

RIGHT

ROLE

ROLES

ROLLBACK

ROLLING

ROLLUP

ROW

ROWDEPENDENCIES

ROWID

ROWNUM

ROWS

ROW_LENGTH

RULE

RULES

SALT

SAMPLE

SAVEPOINT

SAVE_AS_INTERVALS

SB4

SCALE

SCALE_ROWS

SCAN

SCAN_INSTANCES

SCHEDULER

SCHEMA

SCN

SCN_ASCENDING

SCOPE

SD_ALL

SD_INHIBIT

SD_SHOW

SECOND

SECURITY

SEED

SEGMENT

SEG_BLOCK

SEG_FILE

SELECT

SELECTIVITY

SEMIJOIN

SEMIJOIN_DRIVER

SEQUENCE

SEQUENCED

SEQUENTIAL

SERIALIZABLE

SERVERERROR

SESSION

SESSIONS_PER_USER

SESSIONTIMEZONE

SESSIONTZNAME

SESSION_CACHED_CURSORS

SET

SETS

SETTINGS

SET_TO_JOIN

SEVERE

SHARE

SHARED

SHARED_POOL

SHRINK

SHUTDOWN

SIBLINGS

SID

SIMPLE

SINGLE

SINGLETASK

SIZE

SKIP

SKIP_EXT_OPTIMIZER

SKIP_UNQ_UNUSABLE_IDX

SKIP_UNUSABLE_INDEXES

SMALLFILE

SMALLINT

SNAPSHOT

SOME

SORT

SOURCE

SPACE

SPECIFICATION

SPFILE

SPLIT

SPREADSHEET

SQL

SQLLDR

SQL_TRACE

STANDALONE

STANDBY

STAR

START

STARTUP

STAR_TRANSFORMATION

STATEMENT_ID

STATIC

STATISTICS

STOP

STORAGE

STORE

STREAMS

STRICT

STRING

STRIP

STRUCTURE

SUBMULTISET

SUBPARTITION

SUBPARTITIONS

SUBPARTITION_REL

SUBQUERIES

SUBSTITUTABLE

SUCCESSFUL

SUMMARY

SUPPLEMENTAL

SUSPEND

SWAP_JOIN_INPUTS

SWITCH

SWITCHOVER

SYNONYM

SYSAUX

SYSDATE

SYSDBA

SYSOPER

SYSTEM

SYSTIMESTAMP

SYS_DL_CURSOR

SYS_FBT_INSDEL

SYS_OP_BITVEC

SYS_OP_CAST

SYS_OP_ENFORCE_NOT_NULL$

SYS_OP_EXTRACT

SYS_OP_NOEXPAND

SYS_OP_NTCIMG$

SYS_PARALLEL_TXN

SYS_RID_ORDER

T

TABLE

TABLES

TABLESPACE

TABLESPACE_NO

TABLE_STATS

TABNO

TEMPFILE

TEMPLATE

TEMPORARY

TEMP_TABLE

TEST

THAN

THE

THEN

THREAD

THROUGH

TIME

TIMEOUT

TIMESTAMP

TIMEZONE_ABBR

TIMEZONE_HOUR

TIMEZONE_MINUTE

TIMEZONE_OFFSET

TIMEZONE_REGION

TIME_ZONE

TIV_GB

TIV_SSF

TO

TOPLEVEL

TO_CHAR

TRACE

TRACING

TRACKING

TRAILING

TRANSACTION

TRANSITIONAL

TREAT

TRIGGER

TRIGGERS

TRUE

TRUNCATE

TRUSTED

TUNING

TX

TYPE

TYPES

TZ_OFFSET

U

UB2

UBA

UID

UNARCHIVED

UNBOUND

UNBOUNDED

UNDER

UNDO

UNDROP

UNIFORM

UNION

UNIQUE

UNLIMITED

UNLOCK

UNNEST

UNPACKED

UNPROTECTED

UNQUIESCE

UNRECOVERABLE

UNTIL

UNUSABLE

UNUSED

UPDATABLE

UPDATE

UPDATED

UPD_INDEXES

UPD_JOININDEX

UPGRADE

UPSERT

UROWID

USAGE

USE

USER

USERS

USER_DEFINED

USER_RECYCLEBIN

USE_ANTI

USE_CONCAT

USE_HASH

USE_HASH_AGGREGATION

USE_MERGE

USE_NL

USE_NL_WITH_INDEX

USE_PRIVATE_OUTLINES

USE_SEMI

USE_STORED_OUTLINES

USE_TTT_FOR_GSETS

USE_WEAK_NAME_RESL

USING

VALIDATE

VALIDATION

VALUE

VALUES

VARCHAR

VARCHAR2

VARRAY

VARYING

VECTOR_READ

VECTOR_READ_TRACE

VERSION

VERSIONS

VIEW

WAIT

WALLET

WELLFORMED

WHEN

WHENEVER

WHERE

WHITESPACE

WITH

WITHIN

WITHOUT

WORK

WRAPPED

WRITE

XID

XMLATTRIBUTES

XMLCOLATTVAL

XMLELEMENT

XMLFOREST

XMLNAMESPACES

XMLPARSE

XMLPI

XMLQUERY

XMLROOT

XMLSCHEMA

XMLSERIALIZE

XMLTABLE

XMLTYPE

XML_DML_RWT_STMT

X_DYN_PRUNE

YEAR

YES

ZONE

[

]

^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: