Shape2SQLを使ってShapeデータをジオメトリーとしてSQL Serverにインポートする
Shape2SQLを使ってShapeデータをジオメトリーとしてSQL Serverにインポートしたいのだけれど、どうしてもできない。
環境
Windows 7 Professional x64 + SQL Server 2008 R2 Express SP1 x64
もちろん.NET Framework 3.5はインストール済、ファイアウォールで1433は解放済(既定のインスタンスMSSQLSERVER)、リモート接続を有効化済。
検証
SQL Server 2008 がインストールされているPCではShape2SQLでShapeファイルをインポートできているので、実験台まな板PCとなっているWindows 8 Consumer Preview に SQL Server 2008 Expressをインストールすることにした。
Windows 8 Consumer Preview + SQL Server 2008 Express
しかしまたインポートできない。
すでにこの対応に6時間もかけている・・・・ はぁ
とインポートできている環境のmdfとldfをアタッチした。
インポートできた
アタッチしたDBにインポートしたらできるではないか!
何が違うんだ!
DBのプロパティを確認すると
照合順序が違うぞ
できない環境 Japanese_Unicode_BIN
できた環境 Japanese_CI_AS
SQL Serverインストール時に既定の照合順序をJapanese_Unicode_BINにしていた。
結論
インポート先のDBの照合順序がJapanese_Unicode_BINの場合、Shape2SQLではインポートできない。
少なくともJapanese_CI_ASであればインポートできる。
Windows 8 Consumer PrevewにSQL Server 2008をインストールしたのは無意味だった。
SQL Server 2008 R2 Expressでも照合順序をJapanese_90_CI_ASにすればインポート可能です。
これはSQL Server 2008 R2 Express SP1にSahpeファイルをShape2SQLでインポートした日本地図の拡大。左図のようなShapeファイルは対応データ | 製品概要 | ESRI ジャパン株式会社からダウンロードできます。
インポート手順
日本地図のシェイプファイルをDB「GIS」のテーブル「japan_ver72」に取り込む。なお、テーブルはShape2SQLにより自動で作成される。
Shape2SQLを起動。サーバ名にSH78SH7を入力。なお、インスタンス名を既定の「MSSQLSQLSERVER」にしているので、インスタンス名は省略可能。
インポート先のデータべスとして先ほど作成した「GIS」を選に、OK。
シェイプファイル(japan_ver72.shp)を指定。
すると以下の設定が可能になるが、下記例はすべて自動で設定された項目。変更したければ変更する感じ。
テーブル名に「japan_ver72」。
ジオメトリー列をここでは「geom」に指定。
キー列として「ID」をここでは指定。
シェイプファイルから属性情報を自動で読み取ってくれるので、取り込み可能な列が表示されている。ここでは全チェック。
インポートしたデータを表示してみる
SELECT結果にジオメトリ列があるので、空間結果に変換した結果を表示できる。
レポーティングサービスとBingマップ、さらに施設情報のShapeファイルを組み合わせると次のようなマップも作成できる。このレポートの作成方法はまた別の機会に紹介。
コメント
コメントを投稿