为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8
【操作系统】:微软
【CPU】:
【问题描述】*:团队组长创建一个共享数据库发布后,只有其中几个人的数据库表名和字段名无法小写,一直自动转大写。其它开发人员可以正常大小写命名。如何解决
但是如果是通过create 语句创建表,无论是表名还是字段名。都是可以区分大小写的。很奇怪
CASE_SENSITIVE 标识符大小写敏感。
当大小写敏感时,小写的标识符应用双引号""括起,否则系统自动转换为大写;
当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。
dminit初始化参数取值:Y、y、1表示敏感;N、n、0表示不敏感。默认值为Y,且数据库初始化之后不可更改,即使修改dm.ini GLOBAL_STR_CASE_SENSITIVE=0,重启数据库参数也无法修改。
00:53:13 dmdba@CRM:5236 SQL> @p CASE_SENSITIVE
PARA_NAME PARA_VALUE DEFAULT_VALUE SESS_VALUE FILE_VALUE PARA_TYPE PARA_MODULE DESCRIPTION
------------------------- ---------- ------------- ---------- ---------- --------- ----------- -------------------------
GLOBAL_STR_CASE_SENSITIVE 1 1 1 0 READ ONLY mem only global_str_case_sensitive
已用时间: 8.276(毫秒). 执行号:546.
-- 1.1 大小写敏感(CASE_SENSITIVE = Y)示例
-- 表名/列名:不加双引号自动转大写;加双引号保持原样
CREATE TABLE "table1" (id INT); -- 对象名 = table1(小写)
CREATE TABLE table2 (id INT); -- 对象名 = TABLE2(大写)
-- 数据内容:区分大小写
SELECT * FROM dual WHERE dummy='A'; -- 结果 ≠ WHERE dummy='a'
-- 1.2 大小写不敏感(CASE_SENSITIVE = N)示例
-- 对象名:加不加双引号都不区分大小写
CREATE TABLE "table1" (id INT); -- 与 TABLE1、Table1 视为同一表
-- 数据内容:不区分大小写
SELECT * FROM dual WHERE dummy='A'; -- 与 dummy='a' 返回相同结果

这个是创建数据库实例的时候大小写敏感影响的;


1.创建大小写敏感数据库,创建的表会自动转换成大写,如下所示:
2.如果创建大小写不敏感,小写的表会保留为小写,如下所示: