我正在尝试Azure Data Factory v2,我想将数据从SQL源传输到Oracle接收器 .
我的问题是,我在Oracle表中有几个Not Null列,它们指定了数据集加载到Oracle的日期和时间 . 但是这些列在SQL表中是不存在的,所以当我想启动管道时,我得到的错误是这些列在Oracle接收器中不能为空 .
我现在的问题是,是否有可能在管道运行期间人为地添加这些列,以便这些列由数据工厂填充?
我可以使用存储过程或自定义活动吗?
或者我是否必须创建一个Powershell脚本"hardcodes"我想要添加到源的值?
2 回答
您可以在ADFv2中使用针对复制活动中的源数据集的查询来完成此操作以插入值 .
使用表ex_employee,在每个数据库中使用以下配置:
源表(SQL):
接收表(Oracle):
在ADF中的“复制”活动的“源”配置中,您将选择“使用查询”下的“查询”选项,并输入查询,例如:
这将获取SQL表中的现有值,并在结果集中插入一个默认值,然后可以将其插入到Oracle接收器中 .
此列是否具有默认值?你可以添加默认值到这个列,然后尝试?我不熟悉oracle管道数据,但是在下面的示例中,类似的方法是向非空列添加默认值 .