There are restrictions on the use of certain names that are required by the database manager.
It is strongly recommended that schema names never begin with the 'SYS' prefix, because 'SYS', by convention, is used to indicate an area that is reserved by the system. No aliases, global variables, triggers, user-defined functions, or user-defined types can be placed into a schema whose name starts with 'SYS' (SQLSTATE 42939).
The DB2QP schema and the SYSTOOLS schema are set aside for utilities used by the database. It is recommended that users not explicitly define objects in these schemas, although their use is not prevented by the database manager.
It is recommended that schema names never begin with the 'Q' prefix, because on other DB2® database managers 'Q', by convention, is used to indicate an area reserved by the system.
It is also recommended that SESSION not be used as a schema name. Because declared temporary tables must be qualified by SESSION, it is possible to have an application declare a temporary table with a name that is identical to that of a persistent table, complicating the application logic. To avoid this possibility, do not use the schema SESSION except when dealing with declared temporary tables.
Keywords can be used as ordinary identifiers, except in a context where they could also be interpreted as SQL keywords. In such cases, the word must be specified as a delimited identifier. For example, COUNT cannot be used as a column name in a SELECT statement, unless it is delimited.
ISO/ANSI SQL2003 and other IBM® database products include reserved words that are not enforced by DB2 Database for Linux, UNIX, and Windows; however, it is recommended that these words not be used as ordinary identifiers, because it reduces portability.
ACTIVATE DOUBLE LOCATORS ROLLBACK
ADD DROP LOCK ROUND_CEILING
AFTER DSSIZE LOCKMAX ROUND_DOWN
ALIAS DYNAMIC LOCKSIZE ROUND_FLOOR
ALL EACH LONG ROUND_HALF_DOWN
ALLOCATE EDITPROC LOOP ROUND_HALF_EVEN
ALLOW ELSE MAINTAINED ROUND_HALF_UP
ALTER ELSEIF MATERIALIZED ROUND_UP
AND ENABLE MAXVALUE ROUTINE
ANY ENCODING MICROSECOND ROW
AS ENCRYPTION MICROSECONDS ROWNUMBER
ASENSITIVE END MINUTE ROWS
ASSOCIATE END-EXEC MINUTES ROWSET
ASUTIME ENDING MINVALUE ROW_NUMBER
AT ERASE MODE RRN
ATTRIBUTES ESCAPE MODIFIES RUN
AUDIT EVERY MONTH SAVEPOINT
AUTHORIZATION EXCEPT MONTHS SCHEMA
AUX EXCEPTION NAN SCRATCHPAD
AUXILIARY EXCLUDING NEW SCROLL
BEFORE EXCLUSIVE NEW_TABLE SEARCH
BEGIN EXECUTE NEXTVAL SECOND
BETWEEN EXISTS NO SECONDS
BINARY EXIT NOCACHE SECQTY
BUFFERPOOL EXPLAIN NOCYCLE SECURITY
BY EXTENDED NODENAME SELECT
CACHE EXTERNAL NODENUMBER SENSITIVE
CALL EXTRACT NOMAXVALUE SEQUENCE
CALLED FENCED NOMINVALUE SESSION
CAPTURE FETCH NONE SESSION_USER
CARDINALITY FIELDPROC NOORDER SET
CASCADED FILE NORMALIZED SIGNAL
CASE FINAL NOT SIMPLE
CAST FOR NULL SNAN
CCSID FOREIGN NULLS SOME
CHAR FREE NUMPARTS SOURCE
CHARACTER FROM OBID SPECIFIC
CHECK FULL OF SQL
CLONE FUNCTION OFFSET SQLID
CLOSE GENERAL OLD STACKED
CLUSTER GENERATED OLD_TABLE STANDARD
COLLECTION GET ON START
COLLID GLOBAL OPEN STARTING
COLUMN GO OPTIMIZATION STATEMENT
COMMENT GOTO OPTIMIZE STATIC
COMMIT GRANT OPTION STATMENT
CONCAT GRAPHIC OR STAY
CONDITION GROUP ORDER STOGROUP
CONNECT HANDLER OUT STORES
CONNECTION HASH OUTER STYLE
CONSTRAINT HASHED_VALUE OVER SUBSTRING
CONTAINS HAVING OVERRIDING SUMMARY
CONTINUE HINT PACKAGE SYNONYM
COUNT HOLD PADDED SYSFUN
COUNT_BIG HOUR PAGESIZE SYSIBM
CREATE HOURS PARAMETER SYSPROC
CROSS IDENTITY PART SYSTEM
CURRENT IF PARTITION SYSTEM_USER
CURRENT_DATE IMMEDIATE PARTITIONED TABLE
CURRENT_LC_CTYPE IN PARTITIONING TABLESPACE
CURRENT_PATH INCLUDING PARTITIONS THEN
CURRENT_SCHEMA INCLUSIVE PASSWORD TIME
CURRENT_SERVER INCREMENT PATH TIMESTAMP
CURRENT_TIME INDEX PIECESIZE TO
CURRENT_TIMESTAMP INDICATOR PLAN TRANSACTION
CURRENT_TIMEZONE INDICATORS POSITION TRIGGER
CURRENT_USER INF PRECISION TRIM
CURSOR INFINITY PREPARE TRUNCATE
CYCLE INHERIT PREVVAL TYPE
DATA INNER PRIMARY UNDO
DATABASE INOUT PRIQTY UNION
DATAPARTITIONNAME INSENSITIVE PRIVILEGES UNIQUE
DATAPARTITIONNUM INSERT PROCEDURE UNTIL
DATE INTEGRITY PROGRAM UPDATE
DAY INTERSECT PSID USAGE
DAYS INTO PUBLIC USER
DB2GENERAL IS QUERY USING
DB2GENRL ISOBID QUERYNO VALIDPROC
DB2SQL ISOLATION RANGE VALUE
DBINFO ITERATE RANK VALUES
DBPARTITIONNAME JAR READ VARIABLE
DBPARTITIONNUM JAVA READS VARIANT
DEALLOCATE JOIN RECOVERY VCAT
DECLARE KEEP REFERENCES VERSION
DEFAULT KEY REFERENCING VIEW
DEFAULTS LABEL REFRESH VOLATILE
DEFINITION LANGUAGE RELEASE VOLUMES
DELETE LATERAL RENAME WHEN
DENSERANK LC_CTYPE REPEAT WHENEVER
DENSE_RANK LEAVE RESET WHERE
DESCRIBE LEFT RESIGNAL WHILE
DESCRIPTOR LIKE RESTART WITH
DETERMINISTIC LIMIT RESTRICT WITHOUT
DIAGNOSTICS LINKTYPE RESULT WLM
DISABLE LOCAL RESULT_SET_LOCATOR WRITE
DISALLOW LOCALDATE RETURN XMLELEMENT
DISCONNECT LOCALE RETURNS XMLEXISTS
DISTINCT LOCALTIME REVOKE XMLNAMESPACES
DO LOCALTIMESTAMP RIGHT YEAR
DOCUMENT LOCATOR ROLE YEARS
ABS GROUPING REGR_INTERCEPT
ARE INT REGR_R2
ARRAY INTEGER REGR_SLOPE
ASYMMETRIC INTERSECTION REGR_SXX
ATOMIC INTERVAL REGR_SXY
AVG LARGE REGR_SYY
BIGINT LEADING ROLLUP
BLOB LN SCOPE
BOOLEAN LOWER SIMILAR
BOTH MATCH SMALLINT
CEIL MAX SPECIFICTYPE
CEILING MEMBER SQLEXCEPTION
CHAR_LENGTH MERGE SQLSTATE
CHARACTER_LENGTH METHOD SQLWARNING
CLOB MIN SQRT
COALESCE MOD STDDEV_POP
COLLATE MODULE STDDEV_SAMP
COLLECT MULTISET SUBMULTISET
CONVERT NATIONAL SUM
CORR NATURAL SYMMETRIC
CORRESPONDING NCHAR TABLESAMPLE
COVAR_POP NCLOB TIMEZONE_HOUR
COVAR_SAMP NORMALIZE TIMEZONE_MINUTE
CUBE NULLIF TRAILING
CUME_DIST NUMERIC TRANSLATE
CURRENT_DEFAULT_TRANSFORM_GROUP OCTET_LENGTH TRANSLATION
CURRENT_ROLE ONLY TREAT
CURRENT_TRANSFORM_GROUP_FOR_TYPE OVERLAPS TRUE
DEC OVERLAY UESCAPE
DECIMAL PERCENT_RANK UNKNOWN
DEREF PERCENTILE_CONT UNNEST
ELEMENT PERCENTILE_DISC UPPER
EXEC POWER VAR_POP
EXP REAL VAR_SAMP
FALSE RECURSIVE VARCHAR
FILTER REF VARYING
FLOAT REGR_AVGX WIDTH_BUCKET
FLOOR REGR_AVGY WINDOW
FUSION REGR_COUNT WITHIN