Oracle自动为小写标识符加双引号适配Informatica PowerCenter需求问询
Oracle 标识符自动加双引号的配置问题解答
首先得明确一点:Oracle本身并没有全局配置能让所有查询自动为标识符添加双引号。这是因为Oracle的标识符解析规则是默认将未加双引号的标识符转换为大写,只有用双引号包裹的标识符才会严格区分大小写——这也是你现在遇到问题的根源:你的小写表/列是创建时用双引号定义的,所以必须用双引号才能被正确识别。
不过不用急,我们可以从其他角度解决这个兼容问题,给你几个可行的方案:
方案1:从Informatica PowerCenter端调整
这其实是更直接的解决方式,毕竟问题出在工具的识别逻辑上:
- 检查Informatica的Oracle连接属性,有些版本的PowerCenter提供了标识符大小写敏感的配置项,勾选后工具会自动为表名、列名添加双引号,匹配Oracle的大小写敏感标识符。
- 如果没有现成的配置项,也可以在映射设计时,手动给所有涉及的表名和列名加上双引号(比如写成
"my_table")。如果表量较大,还可以用Informatica的批量替换工具或者脚本生成映射元数据,减少重复劳动。
方案2:Oracle端创建同义词做兼容
如果不想改动Informatica的配置,可以在Oracle中为每个小写表创建一个大写的同义词:
CREATE SYNONYM MY_TABLE FOR "my_table";
这样Informatica直接使用大写的MY_TABLE就能访问到小写的"my_table"表,无需添加双引号。这个方案适合表数量不多的场景,要是表太多,写个批量生成同义词的脚本就行。
额外建议
如果是新建设计的数据库,建议尽量避免使用带双引号的小写标识符——毕竟Oracle默认的大写标识符在绝大多数工具中都能无缝兼容,能省去不少这类跨工具的适配麻烦。
内容的提问来源于stack exchange,提问作者infa_user
相关产品推荐
相关产品推荐

