SAS DI Studio SCD Type 2与Postgres直通的表名匹配问题求助
SAS DI Studio 4.905 + Postgres 12 SCD Type2 问题解决
1. 让SCD2转换对直通查询的表名添加引号
可以通过配置Postgres库的属性实现:
- 打开SAS DI Studio中对应的Postgres库属性,找到
QUOTE_CHAR参数,设置为双引号(")。 - 同时确保库的
VALIDMEMNAME选项设置为ANY,确保SAS能识别带引号的表名格式。
配置完成后,SCD2生成的直通查询会自动给表名和列名加上双引号,避免Postgres自动转换大小写导致的表不存在问题。
2. 让SCD2转换生成小写命名的中间表
有两种可行方式:
- 全局会话设置:在DI Studio项目的启动代码中添加
OPTIONS VALIDMEMNAME=LOWCASE;,该设置会让SAS生成的所有临时表、中间表自动转为小写格式。 - 手动指定中间表名:进入SCD转换的高级设置界面,找到中间表的命名配置项,直接输入小写的表名,覆盖默认的自动生成规则。
3. DI中修改临时表名的全局选项
SAS DI Studio提供了多个全局配置项来调整临时表命名规则:
VALIDMEMNAME系统选项:通过设置该选项为LOWCASE/UPCASE/ANY,可以全局控制所有生成表名的大小写格式,包括临时表和中间表。可在项目启动代码或DI Studio的全局选项中配置。- 代码生成全局设置:进入DI Studio的「工具」→「选项」→「代码生成」界面,找到临时表命名相关的配置,可调整临时表的前缀、后缀或命名模板,统一规范临时表的命名格式。
- 库级临时表配置:针对Postgres库,可在库属性中调整
TEMPDBNAME等参数,指定临时表的存储位置和命名规则,进一步细化临时表的生成逻辑。
内容的提问来源于stack exchange,提问作者Elton Rodrigues
相关产品推荐
相关产品推荐

