首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地理数据导入

地理数据导入
EN

Stack Overflow用户
提问于 2016-09-16 21:53:18
回答 2查看 1.1K关注 0票数 0

我试图使用bcp (批量复制工具)将CSV文件中的地理数据导入到SQL server中,但我找不到格式。我想在CSV文件中使用类似这样的内容,但在POINT列中出现错误:

代码语言:javascript
复制
101932694,POINT(44.0586891174316 -69.2067337036133 4326),2014-07-30,24452353

如何格式化CSV文件中的地理数据,以便bcp可以接受它?

EN

回答 2

Stack Overflow用户

发布于 2016-09-17 03:22:58

好吧,它找不到使用bcp导入人类可读地理数据的任何信息,所以我转换点数据:

点(44.058689117431641 -69.206733703613281 4326),...

对于二进制形式:

E6100000010D000000203B4D51C000000020830746400000000000E6B040,...

并将二进制形式放入我的CSV文件中。bcp似乎可以很好地处理这一点。

票数 1
EN

Stack Overflow用户

发布于 2016-09-16 22:06:52

我对BCP一无所知,但希望这篇文章能满足你的需要。

尝试将数据作为字符串导入到临时表中,然后使用更新将其导入到实际表中。

在SQL Server中,空间数据以varbinary形式存储,即您的点将存储为

代码语言:javascript
复制
0xE6100000010C010000203B4D51C0FAFFFF1F83074640

如果您尝试使用SSIS移动数据,它实际上会将其视为varbinary,而不是空间。因此,需要进行转换才能将字符串转换为正确的格式。

代码语言:javascript
复制
SELECT GEOGRAPHY::STGeomFromText('POINT(44.0586891174316 -69.2067337036133)', 4326)
or
SELECT GEOGRAPHY::Point(-69.2067337036133,44.0586891174316,4326)

由于这些原因,我猜BCP不能隐式识别转换,您可能需要手动完成。

CSV =>临时表=>

代码语言:javascript
复制
INSERT INTO RealTable (GeogColumn) SELECT GEOGRAPHY::STGeomFromText(GeogString,4326) FROM TempTable
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39533248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档