标签: csv

从 CSV 更新 oracle sql 数据库

我一开始试过谷歌,但没有运气。是否可以从 csv 文件更新表格?我正在使用 SQL 开发人员,并且正在使用脚本将编辑过的行导出到 csv 文件。我想通过客户端的 csv 文件更新编辑过的行。我不想导入整个文件,因为客户端已经有一个镜像表,我只想更新 csv 文件中的数据。这可能吗?

如果不是最好的方法是什么?

oracle oracle-11g import csv

5
推荐指数
1
解决办法
1万
查看次数

将逗号分隔的条目拆分为行

我有一张这样的表:

|   ID   |  OtherID  | Data
+--------+-----------+---------------------------
|  5059  |   73831   | 5103,5107
|  5059  |   73941   | 5103,5104,5107
|  5059  |   73974   | 5103,5106,5107,5108
Run Code Online (Sandbox Code Playgroud)

结果应该返回单独的行,如下所示:

|   ID   |  OtherID  | Data
+--------+-----------+--------------------------
|  5059  |   73831   | 5103
|  5059  |   73831   | 5107
|  5059  |   73941   | 5103
|  5059  |   73941   | 5104
|  5059  |   73941   | 5107
|  5059  |   73974   | 5103
|  5059  |   73974   | 5106
|  5059  |   73974 …
Run Code Online (Sandbox Code Playgroud)

db2 db2-9.7 csv db2-luw

5
推荐指数
1
解决办法
2万
查看次数

导入带有空字段的 CSV 时出现 MySQL 错误

我有一个带有导出表的 CSV 文件,其中包含不包含值的字段的行。列使用“,”分隔,如果字段没有值,它们看起来像这样:,,,,,, 我尝试使用以下代码加载数据:

LOAD DATA INFILE "C:/table.csv"
INTO TABLE target_table 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
Run Code Online (Sandbox Code Playgroud)

目标表中的列(要加载此 CSV 文件中的数据)可以为空,但服务器返回错误:

"Incorrect integer value"
Run Code Online (Sandbox Code Playgroud)

当我在 CSV 文件中的逗号之间放置 NULL 时,服务器不会返回任何错误。是否可以更改某些设置以在不更改 CSV 文件的情况下加载表?

mysql import csv

5
推荐指数
1
解决办法
3万
查看次数

批量插入 - (0 行受影响)

我正在尝试使用批量插入将 .CSV 文件导入到 mssql 表中(尽管我对其他方法持开放态度)。我有一个批量插入 sql 语句,但是当我执行文件时它说(0 行受影响)。但是,我在文件本身中有数据。

示例 CSV 文件(标题 + 标题下方的一行)


.CSV 标题

更改,停用,锁定,noemail,empno,orighire,薪水,salut,fname,mi,lname,用户名,hstreet1,hstreet2,hcity,hstate,hcountry,hzip,busphone,busext,蜂窝,empemail,职位,工作代码,工作组, orglevel1,orglevel2,orglevel3,orglevel4,orglevel5,company,perfdate,supervisor,misc1,misc2,misc3,misc4,active

.CSV 内容

2014-04-03 00:00:00,NO ,NO ,NO ,1133,2014-04-03 00:00:00,1111.1111,,test,test,test,user.test,111 测试方式,,萨克拉门托, CA,USA,11111,,,,test@test.org,test test,057,02,sss,261,SAC,,test,ttt,1911-11-11 00:00:00,1111,N,,test ,0,NULL


.SQL

BULK
INSERT dbo.Archive
FROM 'C:\scripts\User.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n',
FIRSTROW = 2
)
GO
Run Code Online (Sandbox Code Playgroud)

我试图通过 ps 实现这一点,这是结果和代码:

# Database variables
$sqlserver = "dbserver"
$database = "db"
$table = "tb"

# CSV variables
$csvfile = "C:\scripts\User.csv"
$csvdelimiter = ","
$firstRowColumnNames = $true

################### No need to …
Run Code Online (Sandbox Code Playgroud)

sql-server errors csv bulk-insert

5
推荐指数
1
解决办法
1万
查看次数

Mysql LOAD DATA INFILE 100,000 条 csv 记录完美但 300,000 条记录 - 插入了 0 行

以下查询完美导入 100,000,但更大的文件没有任何反应。没有错误,没有加载行。

您可以提供任何线索表示赞赏。我花了几个小时研究最大文件和内存限制并需要帮助。谢谢!

LOAD DATA LOCAL INFILE 'C:\\temp\\masterplay\\bigone.csv'
INTO TABLE mytable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(`MARK`,`SERIAL NUMBER`, ...thirty some columns...)

0 rows inserted. (Query took 2.2385 sec)
Run Code Online (Sandbox Code Playgroud)

以上在 100,000 条记录上表现完美且快速,对 350,000 条记录没有任何作用。当 CSV 分解为 100,000 多条记录时,导入工作正常。

示例 CSV 文件大小为 314,946 条记录。每行平均 551 个字符。最大行长度为 575。版本:MYSQL 5.6.17、PHP 5.5.12 WAMPSERVER 2.5、Windows 10 Pro 16 GB RAM。无法确定故障模式,因此没有参考文件中的截止。

根据下面的建议,在其他版本和 Linux 上尝试了相同的 SQL,同样的问题。

更新:

下面的想法让我专注于源 CSV 文件。到目前为止,我发现重新保存 CSV(即使它使用 CSV 应用程序检查良好并且在名称和内容上看起来相同)以某种方式修复了文件,以便导入。我有数百个大文件要处理,但不明白有什么区别。

文件以逗号分隔,没有文本分隔符。重新保存文件后,它的内容似乎仍然相同,但文件大小大约增加了 300K。CSV 文件类型是否具有不同的标题或元数据?

mysql import csv

5
推荐指数
1
解决办法
1万
查看次数

PostgreSQL COPY 命令是否可以选择将 CSV 列映射到的字段?

PostgreSQLCOPY命令是否可以选择将 CSV 列映射到的字段?

PostgreSQLCOPY命令似乎期望目标表与其列完全匹配。我错过了什么还是它实际上是如何工作的?

是否有一些替代命令可以启用它?

postgresql copy csv

5
推荐指数
1
解决办法
1万
查看次数

在 SQL Server Management Studio 中读取 CSV 并执行 SQL

是否可以在 SQL Server Management Studio 中读取 CSV 并每行执行 SQL 更新?

例子

数据.csv

"column1","column2,"column3" "column1","column2,"column3" "column1","column2,"column3" "column1","column2,"column3" "column1","column2,"column3"

我想根据每行中的数据运行 SQL 更新,例如

UPDATE [data].[orders] set order_number = $column1, something_else = $column2 where order = $column3

这可以在 SQL Server Management Studio 中完成吗?

sql-server-2012 csv

5
推荐指数
2
解决办法
4万
查看次数

导出为与 SQL Server 兼容的格式

我需要以可以导入 Microsoft SQL Server 数据库的格式提供数据;但是,我没有 Windows 或无法访问 SQL Server 实例。

数据目前位于多个 CSV 电子表格中。我查看了BULK INSERT但发现他们对 CSV 的支持非常有限,例如无法识别双引号(文档:指定字段和行终止符)。我读过不支持边缘情况,例如字段恰好包含引号(因此需要转义)。

是否有更可靠的中间格式可以从 Linux/OSX 生成?例如 MySQL 转储、Excel、Sqlite、XML 等?

我还需要这个导入过程来创建表而不需要编码。导入的人是非技术人员。这将是一个一次性的过程。

  • 目标系统是 SQL Server 2008,但我对与特定版本无关的解决方案非常感兴趣。
  • 要导入的数据在单个 CSV 文件中约为 100MB。
  • 有嵌入的字段/行分隔符,当字段被 Python csv 模块引用时,它可以正常工作。
  • 无需处理外键、索引、约束等。
  • 编码为UTF-8。
  • 来源是从当前存储在 CSV 文件中的德语网页中抓取的数据。如果这是一个可靠的向量,我可以轻松地将它从那里导入到 MySQL/Postgres 中。

我将无法测试导入,因为我无法直接访问 SQL Server 数据库,因此我正在寻找更可靠的方法。例如 MySQL 转储、XLS、XML 等。

sql-server linux import mac-os-x csv

5
推荐指数
1
解决办法
1339
查看次数

对用 STUFF 生成的逗号分隔字符串的结果进行排序

给定这样的架构:

CREATE TABLE Foo
(
    Id int PRIMARY KEY,
    Position int NOT NULL,
    Title varchar(10) NOT NULL
);

INSERT INTO Foo VALUES
(1, 3,  'Title3'),
(2, 10, 'Title10'),
(3, 1,  'Title1'),
(4, 12, 'Title12'),
(5, 2,  'Title2');
Run Code Online (Sandbox Code Playgroud)

我需要生成一个逗号分隔的字符串,按Position以下顺序排序:

'M' + Id + ' AS [' + Title + ']'
Run Code Online (Sandbox Code Playgroud)

想要的结果:

M1 AS [Title1], M2 AS [Title10], M3 AS [Title3], M4 AS [Title10], M5 AS [Title12]
Run Code Online (Sandbox Code Playgroud)

我试过了:

DECLARE @rows nvarchar(max);
SET @rows = STUFF((SELECT DISTINCT ', ' + ('M' …
Run Code Online (Sandbox Code Playgroud)

sql-server order-by csv

5
推荐指数
1
解决办法
6553
查看次数

如何在 SQL Server 2008 中导入 CSV 文件?

我正在尝试在 SQL Server 2008 中导入 CSV 文件。BULK INSERT是一种方法,但它适用于SQL Server 2014 以后的CSV 。

实现这一目标的替代方法是什么?

任何想法/想法都非常感谢。

sql-server-2008 sql-server import csv

5
推荐指数
1
解决办法
2064
查看次数