我创建了以下两个只有不同情况的表:
tables.sql:
CREATE TABLE T1 (C1 INTEGER);
INSERT INTO T1 VALUES (1);
CREATE TABLE "t1" (C1 INTEGER);
INSERT INTO "t1" VALUES (2);
CREATE TABLE T2 (C1 INTEGER, "c1" integer);
INSERT INTO T2 VALUES (3, 4);
命令
db2 -tvf tables.sql
当我想直接从CLP查询表时,我无法区分这两种类型的情况。如何查询表T1,另一个查询到表t1。列C1和c1都相同?
答案 0 :(得分:1)
要在Windows中从CLP查询这些表,您必须执行以下操作:
表T1(最简单的一个):
db2 select * from T1
或(这是因为*的Linux中的方式)
db2 "select * from T1"
表t1
db2 "select * from ""t1"""
对于列类似
db2 select C1 from T2
对于其他
db2 "select ""c1"" from T2"
确保整个命令涉及引号。如果您发出以下命令:
db2 select ""c1"" from T2
它将返回C1。这个命令也一样:
db2 select * from ""t1""
返回T1。
答案 1 :(得分:0)
如果您在Linux shell上使用CLP,shell将解释引号并删除它们。在Linux / Unix上使用反斜杠转义引号
db2 "INSERT INTO \"t1\" VALUES (...)"