Sql server 导入交替行中具有不同格式的文件
我需要使用SSI加载1个文件。 我正在获取以csv文件分隔的管道(|)。但在每一个数据行之间,我得到一行只有“------------”。若我试图以管道分隔的形式加载文件,那个么我并没有得到正确的记录 我有一个解决方案,我需要将整行加载到单个列中,而我需要过滤带有“----”的行,而我需要使用转换并将行拆分为列。但一旦发生变化,就很难管理 有谁能告诉我加载这些文件的其他想法吗?Sql server 导入交替行中具有不同格式的文件,sql-server,ssis,Sql Server,Ssis,我需要使用SSI加载1个文件。 我正在获取以csv文件分隔的管道(|)。但在每一个数据行之间,我得到一行只有“------------”。若我试图以管道分隔的形式加载文件,那个么我并没有得到正确的记录 我有一个解决方案,我需要将整行加载到单个列中,而我需要过滤带有“----”的行,而我需要使用转换并将行拆分为列。但一旦发生变化,就很难管理 有谁能告诉我加载这些文件的其他想法吗? 您可以通过脚本任务或转换来实现这一点。查看脚本中的每一行,如果都是破折号,则忽略它,否则按管道字符对其进行解析。之后,
您可以通过脚本任务或转换来实现这一点。查看脚本中的每一行,如果都是破折号,则忽略它,否则按管道字符对其进行解析。之后,我发现解决方案是以“右参差不齐”格式读取文件。然后过滤掉以“-”开头的记录.在尝试将其作为csv读入之前,我会先看看是否有办法删除备用行……为什么不使用条件拆分并将“----”行发送到多播?您可以(如果愿意!)然后用逗号替换剩余数据上的管道(|),并将其输出到新的.csv文件。接下来的数据流将读取这个.csv文件。您需要在创建第二个数据流之前运行一次,因为您需要一个示例.csv文件来设置新的数据源。处理这种情况的方法可能有很多,但更好的选择是要求客户端仅在csv中发送有效记录,如果csv文件大小较大(例如1GB),则会影响性能,因为您的包将在文件中查找不良记录,这意味着您正在检查每一行。