csv 如何阻止ADF格式化SQL表中的负数字符串值?

xiozqbni  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(99)

我是新的ADF。
我有一个复制数据活动,它将csv文件中的数据上载到SQL Server表中。Activity中每个列的Map是string -> nvarchar。在csv中,我有包含值的列,例如-100。但是复制数据活动将这个字符串值转换为SQL表中的(100)。如何停止这种转变?
真实的的目标是让ADF将字符串csv列上传到money SQL表列中。然而,在csv方面,字符串列中的值被格式化为-,-100,100,而-(表示0)不能被ADF轻易地转换为货币,或者至少我不知道一种方法来做到这一点?
编辑:好的,所以列在excel csv中被格式化为数字,所以尽管显示-100 ADF阅读(100)?有没有一个活动我可以用否定来替换这些括号?

oogrdqng

oogrdqng1#

当您在Excel中的括号之间表示负数(-100),并将文件保存为逗号分隔值时,将如下所示:

id,name
(100.00),Ana
2.00 ,Topson
100.00 ,Ceb
20.00 ,Miracle
  • 要将其更改回-100,可以执行以下步骤。首先在此数据上使用查找活动。以下是数据的外观:

  • 现在,使用set变量activity将(替换为-,并将)替换为空白空间。以下是我使用的动态内容:
@replace(replace(string(activity('Lookup1').output.value),'(','-'),')','')

  • 现在使用OPENJSON,您可以将此对象字符串数组中的数据直接插入到表中。下面是我使用的查询:
INSERT INTO t1
SELECT * FROM OPENJSON('@{variables('tp')}')
WITH (id NVARCHAR(100),name NVARCHAR(100))

  • 以下是数据如何反映在SQL Server表中。我使用Azure SQL数据库进行演示:

相关问题