DB2中表名大小写

时间:2021-09-14 00:50:16

DB2中表名是分大小写的,如果创建表的时候,指定的是小写,那么DB2会自动转化为大写 


下面示例中,创建表的时候,都是“小写”,但第一个表被转换为了大写:

db2 => create table lowercaseone(id int)
DB20000I  The SQL command completed successfully.

db2 => create table "lowercasetwo"(id int)
DB20000I  The SQL command completed successfully.

db2 => list tables

Table/View                      Schema          Type  Creation time             
------------------------------- --------------- ----- --------------------------
LOWERCASEONE                    E105Q5A         T     2017-03-13-11.17.19.338368
lowercasetwo                    E105Q5A         T     2017-03-13-11.17.45.270534

  2 record(s) selected.

如果想要访问这些小写名的表,必须要用双引号把表名括上。如果不在DB2交互模式下,引号前面可以加上转义符\

$ db2 "insert into lowercasetwo values(100)"
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0204N  "E105Q5A.LOWERCASETWO" is an undefined name.  SQLSTATE=42704

$ db2 "insert into \"lowercasetwo\" values(100)"
DB20000I  The SQL command completed successfully.

$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 10.5.5

To exit db2 interactive mode, type QUIT at the command prompt. Outside 
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.

For more detailed help, refer to the Online Reference Manual.

db2 => select * from "lowercasetwo"

ID         
-----------
        100

  1 record(s) selected.


参考资料:

https://www-01.ibm.com/support/docview.wss?uid=swg21459214