JIS X 0401 都道府県コード JSON

# 概要
JIS X 0401:1973「都道府県コード」とISO 3166-2:2013:JP「国の下位区分コード」を結合して、都道府県名の漢字、カナ、英字表記をJSONデータに整備してみた。



# 都道府県コード JSON
以下のリンクからダウンロード可能
[都道府県コードJSON](https://github.com/HirMtsd/Code/blob/master/JISX0401/Prefecture_list.json)

- "code":都道府県等コード
- "name":都道府県名(漢字)
- "kana_name":都道府県名カナ
    - "half_upper":半角カナ(拗音・促音大書き)
    - "full_lower":全角カナ(拗音・促音小書き)
- "en_name":都道府県名英字
    - "en":ISO 3166-2:JPのLanguage codeがenのもの
    - "ja":ISO 3166-2:JPのLanguage codeがjaのもの
- "start_date":適用開始年月日

適用開始日は、沖縄県を除いて「地方自治法(昭和22年4月17日法律第67号)」の施行日としている。
沖縄県については、「琉球諸島及び大東諸島に関する日本国とアメリカ合衆国との間の協定(昭和46年6月17日署名)」の発効日としている。

# 活用例
RDB(OracleとPostgreSQL)への挿入事例

## Oracleの場合(Oracle12.2以降)
仮のJSONテーブルを作成しデータを全件挿入する。
(Oracle12.1以前だと「SQLエラー: ORA-00908: NULLキーワードがありません。」が発生する。)

``` SQL:create_json.sql
CREATE TABLE TEMP_JSON (
    V1 CLOB CONSTRAINT c1 CHECK(v1 IS JSON)
);
```

ORACLEのCLOBに4000バイトを超えるデータを挿入する場合は、4000バイト未満で区切る必要がある。
面倒なので、元のJSONデータを1行ずつ` || TO_CLOB(' ～ ')`にしてみた。

``` SQL:insert_json.sql
INSERT INTO TEMP_JSON VALUES(
to_clob('{')
|| to_clob('  "_comment":"JIS X 0401:1973, ISO 3166-2:JP",')
|| to_clob('  "prefecture_list":[')
|| to_clob('    {"code":"01", "name":"北海道", "kana_name":{"half_upper":"ﾎﾂｶｲﾄﾞｳ", "full_lower":"ホッカイドウ"},')
|| to_clob('                                   "en_name":{"en":"Hokkaido", "ja":"Hokkaidô"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"02", "name":"青森県", "kana_name":{"half_upper":"ｱｵﾓﾘｹﾝ", "full_lower":"アオモリケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Aomori"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"03", "name":"岩手県", "kana_name":{"half_upper":"ｲﾜﾃｹﾝ", "full_lower":"イワテケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Iwate"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"04", "name":"宮城県", "kana_name":{"half_upper":"ﾐﾔｷﾞｹﾝ", "full_lower":"ミヤギケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Miyagi"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"05", "name":"秋田県", "kana_name":{"half_upper":"ｱｷﾀｹﾝ", "full_lower":"アキタケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Akita"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"06", "name":"山形県", "kana_name":{"half_upper":"ﾔﾏｶﾞﾀｹﾝ", "full_lower":"ヤマガタケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Yamagata"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"07", "name":"福島県", "kana_name":{"half_upper":"ﾌｸｼﾏｹﾝ", "full_lower":"フクシマケン"},')
|| to_clob('                                   "en_name":{"en":"Fukushima", "ja":"Hukusima"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"08", "name":"茨城県", "kana_name":{"half_upper":"ｲﾊﾞﾗｷｹﾝ", "full_lower":"イバラキケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Ibaraki"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"09", "name":"栃木県", "kana_name":{"half_upper":"ﾄﾁｷﾞｹﾝ", "full_lower":"トチギケン"},')
|| to_clob('                                   "en_name":{"en":"Tochigi", "ja":"Totigi"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"10", "name":"群馬県", "kana_name":{"half_upper":"ｸﾞﾝﾏｹﾝ", "full_lower":"グンマケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Gunma"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"11", "name":"埼玉県", "kana_name":{"half_upper":"ｻｲﾀﾏｹﾝ", "full_lower":"サイタマケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Saitama"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"12", "name":"千葉県", "kana_name":{"half_upper":"ﾁﾊﾞｹﾝ", "full_lower":"チバケン"},')
|| to_clob('                                   "en_name":{"en":"Chiba", "ja":"Tiba"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"13", "name":"東京都", "kana_name":{"half_upper":"ﾄｳｷﾖｳﾄ", "full_lower":"トウキョウト"},')
|| to_clob('                                   "en_name":{"en":"Tokyo", "ja":"Tôkyô"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"14", "name":"神奈川県", "kana_name":{"half_upper":"ｶﾅｶﾞﾜｹﾝ", "full_lower":"カナガワケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Kanagawa"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"15", "name":"新潟県", "kana_name":{"half_upper":"ﾆｲｶﾞﾀｹﾝ", "full_lower":"ニイガタケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Niigata"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"16", "name":"富山県", "kana_name":{"half_upper":"ﾄﾔﾏｹﾝ", "full_lower":"トヤマケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Toyama"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"17", "name":"石川県", "kana_name":{"half_upper":"ｲｼｶﾜｹﾝ", "full_lower":"イシカワケン"},')
|| to_clob('                                   "en_name":{"en":"Ishikawa", "ja":"Isikawa"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"18", "name":"福井県", "kana_name":{"half_upper":"ﾌｸｲｹﾝ", "full_lower":"フクイケン"},')
|| to_clob('                                   "en_name":{"en":"Fukui", "ja":"Hukui"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"19", "name":"山梨県", "kana_name":{"half_upper":"ﾔﾏﾅｼｹﾝ", "full_lower":"ヤマナシケン"},')
|| to_clob('                                   "en_name":{"en":"Yamanashi", "ja":"Yamanasi"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"20", "name":"長野県", "kana_name":{"half_upper":"ﾅｶﾞﾉｹﾝ", "full_lower":"ナガノケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Nagano"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"21", "name":"岐阜県", "kana_name":{"half_upper":"ｷﾞﾌｹﾝ", "full_lower":"ギフケン"},')
|| to_clob('                                   "en_name":{"en":"Gifu", "ja":"Gihu"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"22", "name":"静岡県", "kana_name":{"half_upper":"ｼｽﾞｵｶｹﾝ", "full_lower":"シズオカケン"},')
|| to_clob('                                   "en_name":{"en":"Shizuoka", "ja":"Sizuoka"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"23", "name":"愛知県", "kana_name":{"half_upper":"ｱｲﾁｹﾝ", "full_lower":"アイチケン"},')
|| to_clob('                                   "en_name":{"en":"Aichi", "ja":"Aiti"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"24", "name":"三重県", "kana_name":{"half_upper":"ﾐｴｹﾝ", "full_lower":"ミエケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Mie"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"25", "name":"滋賀県", "kana_name":{"half_upper":"ｼｶﾞｹﾝ", "full_lower":"シガケン"},')
|| to_clob('                                   "en_name":{"en":"Shiga", "ja":"Siga"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"26", "name":"京都府", "kana_name":{"half_upper":"ｷﾖｳﾄﾌ", "full_lower":"キョウトフ"},')
|| to_clob('                                   "en_name":{"en":"Kyoto", "ja":"Kyôto"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"27", "name":"大阪府", "kana_name":{"half_upper":"ｵｵｻｶﾌ", "full_lower":"オオサカフ"},')
|| to_clob('                                   "en_name":{"en":"Osaka", "ja":"Ôsaka"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"28", "name":"兵庫県", "kana_name":{"half_upper":"ﾋﾖｳｺﾞｹﾝ", "full_lower":"ヒョウゴケン"},')
|| to_clob('                                   "en_name":{"en":"Hyogo", "ja":"Hyôgo"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"29", "name":"奈良県", "kana_name":{"half_upper":"ﾅﾗｹﾝ", "full_lower":"ナラケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Nara"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"30", "name":"和歌山県", "kana_name":{"half_upper":"ﾜｶﾔﾏｹﾝ", "full_lower":"ワカヤマケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Wakayama"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"31", "name":"鳥取県", "kana_name":{"half_upper":"ﾄﾂﾄﾘｹﾝ", "full_lower":"トットリケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Tottori"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"32", "name":"島根県", "kana_name":{"half_upper":"ｼﾏﾈｹﾝ", "full_lower":"シマネケン"},')
|| to_clob('                                   "en_name":{"en":"Shimane", "ja":"Simane"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"33", "name":"岡山県", "kana_name":{"half_upper":"ｵｶﾔﾏｹﾝ", "full_lower":"オカヤマケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Okayama"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"34", "name":"広島県", "kana_name":{"half_upper":"ﾋﾛｼﾏｹﾝ", "full_lower":"ヒロシマケン"},')
|| to_clob('                                   "en_name":{"en":"Hiroshima", "ja":"Hirosima"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"35", "name":"山口県", "kana_name":{"half_upper":"ﾔﾏｸﾞﾁｹﾝ", "full_lower":"ヤマグチケン"},')
|| to_clob('                                   "en_name":{"en":"Yamaguchi", "ja":"Yamaguti"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"36", "name":"徳島県", "kana_name":{"half_upper":"ﾄｸｼﾏｹﾝ", "full_lower":"トクシマケン"},')
|| to_clob('                                   "en_name":{"en":"Tokushima", "ja":"Tokusima"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"37", "name":"香川県", "kana_name":{"half_upper":"ｶｶﾞﾜｹﾝ", "full_lower":"カガワケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Kagawa"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"38", "name":"愛媛県", "kana_name":{"half_upper":"ｴﾋﾒｹﾝ", "full_lower":"エヒメケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Ehime"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"39", "name":"高知県", "kana_name":{"half_upper":"ｺｳﾁｹﾝ", "full_lower":"コウチケン"},')
|| to_clob('                                   "en_name":{"en":"Kochi", "ja":"Kôti"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"40", "name":"福岡県", "kana_name":{"half_upper":"ﾌｸｵｶｹﾝ", "full_lower":"フクオカケン"},')
|| to_clob('                                   "en_name":{"en":"Fukuoka", "ja":"Hukuoka"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"41", "name":"佐賀県", "kana_name":{"half_upper":"ｻｶﾞｹﾝ", "full_lower":"サガケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Saga"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"42", "name":"長崎県", "kana_name":{"half_upper":"ﾅｶﾞｻｷｹﾝ", "full_lower":"ナガサキケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Nagasaki"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"43", "name":"熊本県", "kana_name":{"half_upper":"ｸﾏﾓﾄｹﾝ", "full_lower":"クマモトケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Kumamoto"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"44", "name":"大分県", "kana_name":{"half_upper":"ｵｵｲﾀｹﾝ", "full_lower":"オオイタケン"},')
|| to_clob('                                   "en_name":{"en":"Oita", "ja":"Ôita"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"45", "name":"宮崎県", "kana_name":{"half_upper":"ﾐﾔｻﾞｷｹﾝ", "full_lower":"ミヤザキケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Miyazaki"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"46", "name":"鹿児島県", "kana_name":{"half_upper":"ｶｺﾞｼﾏｹﾝ", "full_lower":"カゴシマケン"},')
|| to_clob('                                   "en_name":{"en":"Kagoshima", "ja":"Kagosima"}, "start_date":"1947-05-03"},')
|| to_clob('    {"code":"47", "name":"沖縄県", "kana_name":{"half_upper":"ｵｷﾅﾜｹﾝ", "full_lower":"オキナワケン"},')
|| to_clob('                                   "en_name":{"en":null, "ja":"Okinawa"}, "start_date":"1972-05-15"}')
|| to_clob('  ]')
|| to_clob('}')
);
```

RDBっぽいテーブルを作成する。

``` SQL:create_pref.sql
CREATE TABLE PREF (
    CODE CHAR(2)  NOT NULL,
    NAME VARCHAR2(12),
    KANA VARCHAR2(24)
);
```

仮のJSONテーブルからINSERTする。

``` SQL:insert_pref.sql
INSERT INTO PREF (CODE, NAME, KANA)
SELECT J.CODE, J.NAME, J.KANA
  FROM TEMP_JSON, 
        JSON_TABLE(V1, '$.prefecture_list[*]'
            COLUMNS(CODE VARCHAR2(2)  PATH '$.code',
                    NAME VARCHAR(300) PATH '$.name',
                    KANA VARCHAR(300) PATH '$.kana_name.full_lower'
            )
        ) as J
;
```

# 補足
公開情報のみから作成しているので、誰の権利も侵害していないと思います。

群馬県の英字表記については、外務省によるパスポートの英字表記がGummaとなるようですが、ISO 3166-2には記載がないです。
https://www.pref.gunma.jp/04/c3610022.html

JIS X 0401の参照元 : [JIS検索](https://www.jisc.go.jp/app/jis/general/GnrJISSearch.html)
「JIS規格番号からJISを検索」にX0401を入力後、「一覧表示」ボタンを押下。
ISO 3166-2:JPの参照元 : [ISO Online Browsing Platform (OBP)](https://www.iso.org/obp/ui/#search)
「Country Codes」をチェックして、JPを入力後、「SEARCH」ボタンを押下。
検索結果画面の「Japan」がリンクになっているので、クリックする。