国土交通省のサイトから丁目レベルと、街区レベルの住所データを取り込みます。丁目レベルではJIS住所コード5桁+7桁独自コードで12桁の「住所コード」と緯度、経度情報が入っています。街区レベルでは街区符号・地番毎に緯度、経度情報が入っています。
位置参照情報 ダウンロードサービス
丁目レベルのデータ取り込み
丁目CSVファイルを取り込むテーブルを作成(KOKUDO_ADDRESS_CHOME)
以下DDLにて取り込むテーブルを作成する
CREATE TABLE SOONI.KOKUDO_ADDRESS_CHOME ( LNO NUMBER ,ADDRESS_CODE VARCHAR2(12 CHAR) -- 大字町丁目コード(注1) ,PREFECTURES_CODE VARCHAR2(2 CHAR) -- 都道府県コード ,PREFECTURES_NAME VARCHAR2(32 CHAR) -- 都道府県名 ,CITY_CODE VARCHAR2(5 CHAR) -- 市区町村コード ,CITY_NAME VARCHAR2(64 CHAR) -- 市区町村名 ,OAZA_TOWN_CHOME_CODE VARCHAR2(7 CHAR) GENERATED ALWAYS AS (SUBSTR("ADDRESS_CODE",6,7)) VIRTUAL ,OAZA_TOWN_CHOME_NAME VARCHAR2(32 CHAR) -- 大字町丁目名 ,LATITUDE NUMBER(11,8) -- 緯度 ,LONGITUDE NUMBER(11,8) -- 経度 ,document_code NUMBER -- 原典資料コード(注2) ,chome_kubun_code NUMBER ); create unique index SOONI.UNI_IDX_KOKUDO_ADDRESS_CHOME on SOONI.KOKUDO_ADDRESS_CHOME (ADDRESS_CODE) ;
(注1) JIS市区町村コード+独自7桁
(注2) 大字・町丁目位置参照情報作成における原典資料を表すコード
SQLローダ(sqlldr)で取り込む際のコントロールファイル
以下をKOKUDO_ADDRESS_CHOME.ctlというファイル名(Windows環境で実施するのでShift_JIS)で作成する。CHARACTERSET JA16SJIS としてあるのは国土交通省から提供されているファイルがShift_JISで作成されているためです。
OPTIONS(ROWS=40000,READSIZE=209715200,BINDSIZE=209715200) LOAD DATA CHARACTERSET JA16SJIS --- 取込みファイルのエンコードを指定 -- 以下指定をすればパラメータで DATA項目の指定は不要 -- INFILE "26_kyoto\chome\26_2020.csv" -- 取込みファイル名 APPEND -- 既存データに対して追加する場合 INTO TABLE KOKUDO_ADDRESS_CHOME -- ロードするテーブル名 FIELDS TERMINATED BY ',' -- カンマ区切り OPTIONALLY ENCLOSED BY '"' -- ダブルクォートで囲っている場合 TRAILING NULLCOLS -- 列が行中に存在しない場合NULLとして扱う ( LNO SEQUENCE(MAX,1) -- 項目最大値+増分値でセット ,PREFECTURES_CODE CHAR ,PREFECTURES_NAME CHAR ,CITY_CODE CHAR ,CITY_NAME CHAR ,ADDRESS_CODE CHAR ,OAZA_TOWN_CHOME_NAME DECIMAL EXTERNAL ,LATITUDE DECIMAL EXTERNAL ,LONGITUDE DECIMAL EXTERNAL ,DOCUMENT_CODE DECIMAL EXTERNAL ,CHOME_KUBUN_CODE DECIMAL EXTERNAL )
SQLローダ(sqlldr)の実行
sqlldr sooni/sooni@vm102/ora19.box control=KOKUDO_ADDRESS_CHOME.ctl skip=1 DATA='01000-15.0b\01_2021.csv'
D:\ldrtest>sqlldr sooni/sooni@vm102/ora19.box control=KOKUDO_ADDRESS_CHOME.ctl skip=1 DATA='01000-15.0b\01_2021.csv'
SQL*Loader: Release 19.0.0.0.0 - Production on 日 12月21 23:34:48 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle and/or its affiliates. All rights reserved.
使用パス: 従来型
コミット・ポイントに達しました - 論理レコード件数25980
表KOKUDO_ADDRESS_CHOME:
25980 行は正常にロードされました。
確認するログ・ファイル:
KOKUDO_ADDRESS_CHOME.log
ロードの詳細を参照してください。
D:\ldrtest>
街区レベルのデータ取り込み
街区CSVファイルを取り込むテーブルを作成(KOKUDO_ADDRESS_GAIKU)
以下DDLにて取り込むテーブルを作成する
CREATE TABLE SOONI.KOKUDO_ADDRESS_GAIKU ( LNO NUMBER, PREFECTURES_NAME VARCHAR2(32 CHAR), -- 都道府県名 CITY_NAME VARCHAR2(64 CHAR), -- 市区町村名 OAZA_TOWN_CHOME_NAME VARCHAR2(32 CHAR), -- 大字・丁目名 KOAZA_ALIAS VARCHAR2(64 CHAR), -- 小字・通称名 BLOCK_NUMBER VARCHAR2(10 CHAR), -- 街区符号 COORDINATE_SYSTEM_NUMBER NUMBER, --座標系番号 X_COORDINATE NUMBER(11,3), --X座標 Y_COORDINATE NUMBER(11,3), --Y座標 LATITUDE NUMBER(12,8), -- 緯度 LONGITUDE NUMBER(12,8), -- 軽度 RESIDENCE_DISPLAY_FLAG VARCHAR2(4 CHAR), -- 住居表示フラグ REPRESENT_FLAG VARCHAR2(4 CHAR), --代表フラグ BEFORE_UPDATE_HISTORY_FLAG VARCHAR2(4 CHAR), -- 更新前履歴フラグ AFTER_UPDATE_HISTORY_FLAG VARCHAR2(4 CHAR) -- 更新後履歴フラグ );
SQLローダ(sqlldr)で取り込む際のコントロールファイル
以下をKOKUDO_ADDRESS_GAIKU.ctlというファイル名(Windows環境で実施するのでShift_JIS)で作成する。CHARACTERSET JA16SJIS としてあるのは国土交通省から提供されているファイルがShift_JISで作成されているためです。(都道府県単位のファイルでしかダウンロードできないのが不便です。)
OPTIONS(ROWS=40000,READSIZE=209715200,BINDSIZE=209715200) --,BINDSIZE=25600000,READSIZE=104857600 LOAD DATA CHARACTERSET JA16SJIS --- 取込みファイルのエンコードを指定 INFILE "26_kyoto\gaiku\26_2020.csv" -- 取込みファイル名 APPEND -- 既存データに対して追加する場合 INTO TABLE KOKUDO_ADDRESS_GAIKU -- ロードするテーブル名 FIELDS TERMINATED BY ',' -- カンマ区切り OPTIONALLY ENCLOSED BY '"' -- ダブルクォートで囲っている場合 TRAILING NULLCOLS -- 列が行中に存在しない場合NULLとして扱う ( LNO SEQUENCE(MAX,1) -- 項目最大値+増分値でセット ,PREFECTURES_NAME CHAR ,CITY_NAME CHAR ,OAZA_TOWN_CHOME_NAME CHAR ,KOAZA_ALIAS CHAR ,BLOCK_NUMBER CHAR ,COORDINATE_SYSTEM_NUMBER DECIMAL EXTERNAL ,X_COORDINATE DECIMAL EXTERNAL ,Y_COORDINATE DECIMAL EXTERNAL ,LATITUDE DECIMAL EXTERNAL ,LONGITUDE DECIMAL EXTERNAL ,RESIDENCE_DISPLAY_FLAG CHAR ,REPRESENT_FLAG CHAR ,BEFORE_UPDATE_HISTORY_FLAG CHAR ,AFTER_UPDATE_HISTORY_FLAG CHAR )
SQLローダ(sqlldr)の実行
sqlldr sooni/sooni@vm102/ora19.box control=KOKUDO_ADDRESS_GAIKU.ctl skip=1 DATA='01000-20.0a\01_2021.csv'
D:\ldrtest>sqlldr sooni/sooni@vm102/ora19.box control=KOKUDO_ADDRESS_GAIKU.ctl skip=1 DATA='01000-20.0a\01_2021.csv'
SQL*Loader: Release 19.0.0.0.0 - Production on 日 12月21 22:49:16 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle and/or its affiliates. All rights reserved.
使用パス: 従来型
コミット・ポイントに達しました - 論理レコード件数40000
コミット・ポイントに達しました - 論理レコード件数80000
コミット・ポイントに達しました - 論理レコード件数120000
コミット・ポイントに達しました - 論理レコード件数160000
コミット・ポイントに達しました - 論理レコード件数200000
コミット・ポイントに達しました - 論理レコード件数240000
コミット・ポイントに達しました - 論理レコード件数280000
コミット・ポイントに達しました - 論理レコード件数320000
コミット・ポイントに達しました - 論理レコード件数339280
表KOKUDO_ADDRESS_GAIKU:
339280 行は正常にロードされました。
確認するログ・ファイル:
KOKUDO_ADDRESS_GAIKU.log
ロードの詳細を参照してください。
D:\ldrtest>