Sql Azure Data Factory v2接收器中的非空列

Sql Azure Data Factory v2接收器中的非空列,sql,oracle,powershell,azure-data-factory-2,Sql,Oracle,Powershell,Azure Data Factory 2,我正在试用Azure Data Factory v2,我想将数据从SQL源传输到Oracle接收器 我的问题是,我的Oracle表中有几个NOTNULL列,这些列指定了数据集加载到Oracle的日期和时间。但是,这些列在SQL表中不存在,因此当我想要启动管道时,我会得到一个错误,即这些列在Oracle接收器中不能为null 我现在的问题是,是否可以在管道运行期间人为添加这些列,以便数据工厂填充这些列? 我可以为此使用存储过程或自定义活动吗? 或者我必须创建一个Powershell脚本,其中“硬编

我正在试用Azure Data Factory v2,我想将数据从SQL源传输到Oracle接收器

我的问题是,我的Oracle表中有几个NOTNULL列,这些列指定了数据集加载到Oracle的日期和时间。但是,这些列在SQL表中不存在,因此当我想要启动管道时,我会得到一个错误,即这些列在Oracle接收器中不能为null

我现在的问题是,是否可以在管道运行期间人为添加这些列,以便数据工厂填充这些列?
我可以为此使用存储过程或自定义活动吗?

或者我必须创建一个Powershell脚本,其中“硬编码”了我要添加到源中的值?

此列是否具有默认值?您能否将默认值添加到此列,然后重试?我不熟悉oracle管道数据,但在下面的示例中,我使用了类似的方法向NOTNULL列添加默认值

drop table ex_employee
/
create table ex_employee (id number(1) null ,name varchar2(100)  default 'A' not null )
/
insert into ex_employee(id)
select 1 from dual
/
commit
/

selecT * from ex_employee where id=1

您可以在ADFv2中通过在复制活动中查询源数据集以插入值来完成此操作

使用表ex_employee,在每个数据库中进行以下配置:

源表(SQL):

汇表(Oracle):

在ADF中复制活动的源配置中,选择“使用查询”下的“查询”选项,然后输入查询,例如:

SELECT ID, Name, CURRENT_TIMESTAMP AS CreatedDate FROM ex_employee

这将从SQL表中获取现有值,并将默认值插入结果集中,然后可以将结果集插入到Oracle接收器中。

谢谢。不,它们没有默认值。您的建议可能适用于使用加载日期的列,但我有另一个列,该列应填充数据工厂管道的名称,对于该列,默认值实际上并不实用。如果可能的话,我得和老板谈谈。尽管如此,其他想法仍然值得赞赏。如果sql没有数据工厂管道的名称,那么您想如何添加数据?为什么不在sql中添加数据@目前,我仍在使用Data factory v1,不再在公司工作的人为其创建了一个Powershell脚本,以便将值动态添加到管道中。由于ADFv2改变了管道JSON的生成方式,我们不能再使用相同的脚本。因为这里没有人擅长Powershell,所以我想尝试一种解决方法。谢谢你的帮助,非常感谢。我将尝试让它与默认值一起工作,否则我将不得不学习一些Powershell。
ID number(p,0) not null,
Name nvarchar2(25) not null,
CreatedDate timestamp not null
SELECT ID, Name, CURRENT_TIMESTAMP AS CreatedDate FROM ex_employee