Azure Data Factory流水线Oracle视图拷贝去除vw_前缀重命名表问题咨询
实现方法
你可以直接在Lookup的Oracle查询中通过字符串截取函数去掉vw_前缀,不需要修改后续存储和拷贝逻辑,操作步骤如下:
1. 修改Lookup查询语句
使用Oracle内置的SUBSTR函数处理视图名字段,直接在查询结果中生成不带前缀的目标表名,修改后的查询如下:
SELECT OWNER AS TABLE_SCHEMA, VIEW_NAME AS SOURCE_VIEW_NAME, -- 截取视图名从第4位开始的所有字符,去掉前3位的'VW_'前缀 SUBSTR(VIEW_NAME, 4) AS TABLE_NAME FROM SYS.ALL_VIEWS WHERE VIEW_NAME LIKE 'VW_RX_%'
SUBSTR函数的逻辑说明:VW_固定占3个字符,从第4位开始截取到字符串末尾,就能得到你需要的RX_CASE_WORKLIST格式的表名。
2. 校验语句适配
你原有的校验语句不需要大改,因为查询中已经把去掉前缀的表名别名为TABLE_NAME,原有逻辑可以直接复用,只需要调整源视图引用字段即可:
IF EXISTS (SELECT * FROM [@{item().TABLE_SCHEMA}].[@{item().SOURCE_VIEW_NAME}]) TRUNCATE TABLE [@{item().TABLE_SCHEMA}].[@{item().TABLE_NAME}]
3. 拷贝任务配置调整
源端数据集引用视图表名时用@{item().SOURCE_VIEW_NAME},目标端数据集引用表名时用@{item().TABLE_NAME}即可,Blob存储的文件名可以保持原有配置,不需要做任何修改。
内容的提问来源于stack exchange,提问作者Chris Lundy
相关产品推荐
相关产品推荐

