【问题标题】:Import CSV files from BLOB to Database Table将 CSV 文件从 BLOB 导入数据库表
【发布时间】:2012-05-15 22:21:57
【问题描述】:

我在 MS SQL Express 中有一个表,它将 csv 文件存储为 blob。我想将这些 csv 文件导入表中。 csv 中的列与数据库表中的列相匹配。这可能吗?这是我的简化示例:

CSV blob 存储表:

Table CSVStore
(ReportID, File image, FileName nvarchar (200))

我的 CSV 文件有列

(FirstName, LastName, DOB)

我的 SQL 表

Table Employees

(EmployeeID INT IDENTITY (1,1),
FirstName nvarchar (100),
LastName nvarchar (100),
DOB datetime,
Primary Key (EmployeeID))

当 ReportID = 1 时,如何从 CSVStore 获取 CSV 数据到我的员工表中?

【问题讨论】:

  • 您可以使用外部程序以编程方式执行此操作,该程序从 blob 中检索文件并检查它们。您的具体要求是什么?
  • 我只是想知道是否有一个简单的 SQL 查询/脚本可以将 blob 文件导入表中。我只是在任何地方都看不到一个例子。
  • CSV 文件中是否有提到数据库表名?有列,但你怎么知道要插入哪个表?
  • 两个表在同一个数据库中。

标签: sql csv blob


【解决方案1】:
【解决方案2】:

您可以使用OpenRowSet 命令来处理它。

INSERT INTO db.CSV
(
  FileName,
  FileContent
)
SELECT 'file1.csv', BlobFile.*
FROM OPENROWSET 
(BULK 'C:\CSV\file1.csv', single_blob) BlobFile

有一个 arctile Working with Large Value Types,您可能会发现它很有用。

【讨论】:

  • 谢谢 - 我对此有点迟钝,所以我将不胜感激。我有一个名为 Reportstore 的 CSV 文件表,其中包含 FileName nvarchar (100) 和 CSV File image 列。 CSV 文件具有例如 2 列 Firstname 和 Lastname。我想将其导入到 Employeedetails 的表有 2 列 Firstname 和 Lastname。这个 SQL 脚本的外观如何?
  • 您能否将 CSV 文件示例放入问题中?似乎您需要在 SQL 中编写自定义批量插入操作。
猜你喜欢
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2016-12-30
  • 2012-12-22
  • 1970-01-01
相关资源
最近更新 更多