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

Why is DB2 for IBM i (AS400 DB2) field name started and ended by double quotes as "THISID" when it's imported from MS EXCEL?

今天,我在使用 STRSQL 和 F4 时发现一些 DB2 字段名称以双引号开始和结束。但它似乎是随机发生的。 有没有人可以回答我为什么会这样? 另外我想听听我们是否可以保持原样或需要修复它?

您是从 Excel 创建 table,我假设是使用传输数据加载项?

列名被引用的两个原因...

1) 保留字。例如,DATE 作为列名
CREATE TABLE MYTBL("DATE" DATE NOT NULL WITH DEFAULT)
2) 保留大小写
CREATE TABLE MYTBL("MyColumn" CHAR(10) NOT NULL WITH DEFAULT)

在第一种情况下,系统通常足够聪明,允许您在不引用的情况下引用该列;这有效:
select date from mytbl

但是,在第二种情况下,您始终必须引用带有引号和正确大小写的列;这个工作:
select mycolumn from mytbl

DB2 有两种类型的名称:

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

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

参考:DB2 for i SQL Identifiers