0

这里有趣的问题是,我使用 powershells export-csv 实用程序创建了一系列具有不同内容的 csv 文件。据我所知,这会导出一个 csv 文件,其中所有值都是字符串,因此用引号封装。这是一个问题,因为这些字段都有不同的类型值,包括整数、双精度值等。我需要能够将它们导入 SQL Server,并且在尝试插入具有这些类型的字段时,引号会造成问题。

我考虑过使用正则表达式删除所有引号,并且可能使用不同的分隔符,例如管道,但这种方法的问题是其他一些字段是诸如电子邮件之类的项目,其中可能有引号需要保留。

我也玩过通过 clixml 导出到 xml 的想法,但是,我需要导入数据的人能够避免复杂的导入方法,例如 SSIS。

任何建议都是好建议,谢谢!

4

1 回答 1

0

他们将使用什么来导入数据,该程序如何识别强类型数据?

我可以通过将类型转换指定为字符串的一部分在 Powershell 中键入 csv 数据,然后通过在重新导入时调用该表达式来重新转换它:

$ht = @{
Prop1 = "[int]21"
Prop2 = "[datetime]'07/18/2011'"
Prop3 = "[double]31"
}

$x = new-object psobject -property $ht
$x | export-csv testtype.csv -notype

$y = import-csv testtype.csv 
$props = $y.psobject.properties | select -expand name


$y |% {
foreach ($prop in $props){$_.$prop = iex $_.$prop}
}

您用于导入的任何内容如何识别数据类型?您可以以程序识别的格式向字符串添加类型转换吗?

于 2011-07-18T19:39:02.610 回答