緯度経度CSVをSQL Serverに取り込み


言うまでもないが通常ユーザで実行する事ではない。
一時的に権限付与するか管理者で実行

必要な権限の付与とはく奪。

--ロール付与
ALTER SERVER ROLE bulkadmin ADD MEMBER ゆーざ名;
GO
--ロールはく奪
ALTER SERVER ROLE [bulkadmin] DROP MEMBER ゆーざ名;
GO

取り込まれ結果
CSV

XMLカラム定義
http://technet.microsoft.com/ja-jp/library/ms191516.aspx

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="0" xsi:type="CharTerm" TERMINATOR=","/>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR=","/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR=","/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR=","/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n"/>
</RECORD>
<ROW>
<COLUMN SOURCE="0" NAME="Name" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="1" NAME="Address" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="2" NAME="lat" xsi:type="SQLFLT8"/>
<COLUMN SOURCE="3" NAME="lon" xsi:type="SQLFLT8"/>
<COLUMN SOURCE="4" NAME="Code" xsi:type="SQLINT"/>
</ROW>
</BCPFORMAT>

SQLクエリ

SELECT
  *,
  GEOGRAPHY::Point(lat,lon,4612) AS SHAPE -- 4612=JGD2000
FROM OPENROWSET(
 BULK 'C:\CSVファイル.csv',
 FORMATFILE='C:\カラム定義.xml'
) AS CSV;

CSV

観測所名,所在地,緯度,経度,地点コード
頭ヶ島,南松浦郡新上五島町友住郷 上五島航空気象観測所,33.0133,129.1917,1536
カテゴリー: 運用 タグ: パーマリンク