gpt4 book ai didi

sql - 如何用 CSV 数据更新 SQL 表?

转载 作者:行者123 更新时间:2023-12-01 11:58:48 26 4
gpt4 key购买 nike

我正在尝试使用源 CSV 文件中的新列更新我的一个 SQL 表。此文件中的这些 CSV 记录已在我的 SQL 表中,但缺少此 CSV 文件中的某些列。

我已经将新列添加到我的 SQL 表中。但现在我只需要从新列中导入数据。我怎样才能做到最好?

我正在尝试使用 SSIS 2008 来执行此操作。我创建了一个平面文件 CSV 数据源。然后我添加了一个 OLE DB 命令。我将 SQL 命令设置如下:

update berkeley.dbo.j5c_ALL_DATA 
set disabilitycode=[Stu Pri Dis],
IEPID=SpecED
,[MT_AR_CR]=[Met At-Rsk Crit]
,[ECP]=[Early Childhood Program]
,[REF_CFC]=[Ref by CFC]
,[IEP_COM_DT]=[IEP Cmp Date]
,[E1_NUM]=[EI Nbr]
,[RDIT]=[Reason for Delay in Transition]
,[MT_PFA_HI]=[Met PFA Inc Crt]
,[FS]=[Family Structure]
,[Hm_Sch_RCDTS]=[RCDTS Home]
,[Srv-Sch_RCDTS]=[RCDTS Serve]
from berkeley.dbo.j5c_ALL_DATA A join Berkeley_CSV2 b ON
A.studentid = B.[SAP ID] and A.BegEnrollDate = B.[Enroll Date]

其中 Berkeley_CSV2 是我的 CSV 平面文件连接管理器的名称。但是我得到一个错误:

The connection manager "Berkeley_CSV2" is an incorrect type.  The type required is "OLEDB".  The type available to the component is "FLATFILE".

您能否向我推荐一种添加此数据的替代方法或其他 SQL 命令?

最佳答案

处理此问题的最佳方法是分多个步骤。不要扔掉你目前的工作;它将适合作为不同解决方案的一部分。

首先,在您的数据库中创建一个暂存表。这将是平面文件中数据的中间和临时位置。为了简化后续步骤,最好为平面文件中的每个字段创建一个列,即使不需要某些数据。在返回 SSIS 设计之前创建表。

在 SSIS 中,为您的数据库创建一个 OLE DB 连接管理器,为您的平面文件创建另一个。根据您问题中的信息,您可能已经准备就绪。

创建数据流任务。在数据流任务中,创建一个平面文件源并将其链接到您的平面文件。创建一个 OLE DB 目标并将其链接到您的暂存表。映射从源到目标的数据流路径。

下一步是调整 OLE DB 命令以处理新表中的数据。在控制流工作区中,从新的数据流任务到现有的 OLE DB 命令创建优先约束(两个任务之间的线)。这将使数据流首先运行,然后是 OLE DB 命令。

在 OLE DB 命令中修改您的 SQL 脚本,以便它引用新表和关联的列名。脚本不应引用该文件。我认为 SQL 脚本中不需要任何其他更改。

关于sql - 如何用 CSV 数据更新 SQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3579616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com