Informix 中的某些表是否仅采用小写形式的列值?

Does some tables in Informix take values of a column only in lower case?

我在 table 中找到一些列,例如 sysdbspaces table 中的 name 列13=]sysmaster 数据库以及 Informix 中 tables 中的某些列同样只采用小写字母。假设我使用 onspaces 命令创建了一个名称为 SAmple 的数据库空间 sysdbspaces[=] 的 name 列中的新值21=] 将是 sample 而不是 SAmple 并且如果我查询其名称 = 'SAmple' 的数据库空间,它将返回 null 。遇到这种情况如何区分大小写?

正在将评论转为答案。

如果您愿意,您可以将大写(或混合大小写)用户名括在引号中。对于 sysdbspaces,我认为你被卡住了;名称被转换为小写,句号。不要对仅包含小写值的列使用大小写混合搜索。

作为系统目录中混合大小写名称的示例:

 CREATE TABLE 'McDonald'.Ronald(t INTEGER NOT NULL)

有效并在所有者列中使用名称 McDonald。您也可以使用分隔标识符(用双引号分隔的名称),但您需要设置 DELIMIDENT 环境变量。

顺便说一句,在 MODE ANSI 数据库中,您可以这样写:

create table whodunnit.murder_mystery (t integer not null); 

并且系统目录会将所有者记录为大写的 WHODUNNIT。除非你引用用户名,否则用户名是informix,它将被大小写转换。