今天,当我使用STRSQL
和F4时,我发现一些DB2字段名以双引号开始和结束。但这似乎是随机发生的。有人能告诉我为什么会这样吗?我也想听听我们是否可以保持这个,因为它是需要被修复?
您正在创建表格从Excel,我假设通过使用传输数据插件?
列名加引号的两个原因…
1)这是一个保留词。例如,DATE作为列名CREATE TABLE MYTBL("DATE" DATE NOT NULL WITH DEFAULT)
2)保留caseCREATE TABLE MYTBL("MyColumn" CHAR(10) NOT NULL WITH DEFAULT)
在第一种情况下,系统通常足够聪明,允许你引用列而不引用它;如此:select date from mytbl
然而,在第二种情况下,您总是必须使用引号和正确的大小写来引用列;this DOES NOT work:select mycolumn from mytbl
DB2有两种类型的名称:
普通标识符是一个大写字母,后面跟着零个或多个字符,每个字符是大写字母、数字或下划线字符。注意,普通标识符被转换为大写。普通标识符不应该是保留字。
分隔符是包含在SQL转义字符中的一个或多个字符的序列。该序列必须由一个或多个字符组成。序列中的前导空格是重要的。序列中的尾随空白是不重要的。分隔标识符的长度不包括两个SQL转义字符。注意,带分隔符的标识符不会转换为大写。转义字符是引号(")。