为什么从 MS EXCEL 导入 DB2 for IBM i (AS400 DB2) 字段名称时以双引号开头和结尾"THISID"?



今天,当我使用STRSQL和F4时,我发现一些DB2字段名以双引号开始和结束。但这似乎是随机发生的。有人能告诉我为什么会这样吗?我也想听听我们是否可以保持这个,因为它是需要被修复?

您正在创建表格从Excel,我假设通过使用传输数据插件?

列名加引号的两个原因…

1)这是一个保留词。例如,DATE作为列名
CREATE TABLE MYTBL("DATE" DATE NOT NULL WITH DEFAULT)
2)保留case
CREATE TABLE MYTBL("MyColumn" CHAR(10) NOT NULL WITH DEFAULT)

在第一种情况下,系统通常足够聪明,允许你引用列而不引用它;如此:
select date from mytbl

然而,在第二种情况下,您总是必须使用引号和正确的大小写来引用列;this DOES NOT work:
select mycolumn from mytbl

DB2有两种类型的名称:

普通标识符是一个大写字母,后面跟着零个或多个字符,每个字符是大写字母、数字或下划线字符。注意,普通标识符被转换为大写。普通标识符不应该是保留字。

分隔符是包含在SQL转义字符中的一个或多个字符的序列。该序列必须由一个或多个字符组成。序列中的前导空格是重要的。序列中的尾随空白是不重要的。分隔标识符的长度不包括两个SQL转义字符。注意,带分隔符的标识符不会转换为大写。转义字符是引号(")。

最新更新