我想将 .CSV 文件导入 MySQL 表。我想根据 CSV 文件中包含的实际数据确定要使用的最佳列宽。是否有任何脚本或实用程序可以完成此操作?
我一开始试过谷歌,但没有运气。是否可以从 csv 文件更新表格?我正在使用 SQL 开发人员,并且正在使用脚本将编辑过的行导出到 csv 文件。我想通过客户端的 csv 文件更新编辑过的行。我不想导入整个文件,因为客户端已经有一个镜像表,我只想更新 csv 文件中的数据。这可能吗?
如果不是最好的方法是什么?
我想在不知道.sql文件名称的情况下导入数据库。
在MySql服务器中很容易,因为有像 heidSQL 这样的工具,我可以在其中轻松地从 sql 文件中导入我的数据库,但在 SQL Server 中我找不到执行此操作的方法。
我试图在记事本中读取文件,但编码使内容不可读。

当我执行这个查询时,RESTORE HEADERONLY FROM DISK = N'C:\Planning\bdd.sql'我有这个

我有一个 SQL Server 2008 实例,我想用它从 Oracle 服务器导入数据。
我已经设置了一个链接服务器,它在运行像SELECT * FROM table. 但是,如果我声明一个变量或循环遍历表中的行或OPENQUERY.
是否可以使用OPENQUERY? 我需要额外的权限吗?
我正在尝试将数据导入到 postgres 中。数据字段以逗号分隔,字符串可能包含逗号,在这种情况下,这些字段将被转义:
数据结构:
create table v (a varchar);
Run Code Online (Sandbox Code Playgroud)
数据文件:
bus
'Gat\,\\e\'way_MQB'
Run Code Online (Sandbox Code Playgroud)
导入命令(在Linux下从bash运行)
cat data.csv | psql -d database -c "copy v (a) from stdin with delimiter ',' escape '\\' CSV header"
Run Code Online (Sandbox Code Playgroud)
错误:
ERROR: extra data after last expected column
Run Code Online (Sandbox Code Playgroud)
我已经和谷歌对抗这个问题好几个小时了,不明白我做错了什么?
我有一个带有导出表的 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 文件的情况下加载表?
每个星期五我都必须将几个(有时超过 300 个)XML 文件导入到 2 个表中。
其中一张表的结构R000000如下所示:
R00000010 | R00000020 | R00000030 | R00000040 | R00000050 | R00000060
---------- ------------ ---------- ----------- ----------- ----------
R000000 | I | 0002 | 1 | 2 | 0026
R000000 | I | 0003 | 1 | 2 | 0025
R000000 | I | 0004 | 1 | 2 | 0021
R000000 | I | 0006 | 1 | 2 | 0023
R000000 | I | 0001 | 1 | 2 | …Run Code Online (Sandbox Code Playgroud) 我需要以可以导入 Microsoft SQL Server 数据库的格式提供数据;但是,我没有 Windows 或无法访问 SQL Server 实例。
数据目前位于多个 CSV 电子表格中。我查看了BULK INSERT但发现他们对 CSV 的支持非常有限,例如无法识别双引号(文档:指定字段和行终止符)。我读过不支持边缘情况,例如字段恰好包含引号(因此需要转义)。
是否有更可靠的中间格式可以从 Linux/OSX 生成?例如 MySQL 转储、Excel、Sqlite、XML 等?
我还需要这个导入过程来创建表而不需要编码。导入的人是非技术人员。这将是一个一次性的过程。
我将无法测试导入,因为我无法直接访问 SQL Server 数据库,因此我正在寻找更可靠的方法。例如 MySQL 转储、XLS、XML 等。
我什至不确定我是否正确地提出了这个问题,但我会尝试 - 我有一堆从 Linux 系统上的 Oracle 导出生成的巨大文本文件。每个文件大小约为 30 GB,我有大约 50 个。
目标是将此数据导出到 Azure SQL 数据仓库。在这种情况下,考虑到数据的大小,BCP 不是正确的方法,所以我不得不使用 Polybase。
从 ASCII 转换为 UTF8 编码后,我在查询外部表时遇到了问题。Polybase 不能很好地处理固定宽度的文本文件,每行都有一个换行符。
文本文件看起来像这样:
101,102,103,104,105,106,107 108,108,109,110,111,112,113 114,115,116,117,118,119,120 121,122,123 --这里什么都没有,只是一个空行 201、202、203、204、205、206、207 208,209,210,211,212,213,214 215,216,217
Polybase 尝试从 101 到 107 进行处理,并且出现错误,抱怨此文件中没有足够的列可供处理。
这是我认为正在发生的事情:固定宽度和换行符使其将换行符视为行分隔符。
如何将此文件转换为如下所示:
101,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123{CR}
201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217{CR}{LF}
编辑:这是来自文件的示例数据。我在 Windows VM 上用 git bash 打开它。
这些文件应该有 167 列,,作为列分隔符。问题是,由于每行产生多行,因此很难从 Polybase 外部表处理它们。
我使用此查询使用 MySQL Dump(命令提示符/命令行)导入数据
mysql -u root -p database_name < database_name.sql
Run Code Online (Sandbox Code Playgroud)
我想导入大型数据库(仅新的增量),现在我删除数据库并重新导入,但我只想导入新的增量。
import ×10
sql-server ×4
csv ×3
mysql ×3
oracle ×2
command-line ×1
copy ×1
datatypes ×1
linux ×1
mac-os-x ×1
mysqldump ×1
oracle-11g ×1
polybase ×1
postgresql ×1
restore ×1
xml ×1