次は、ストアドプロシージャのパッケージ化ということで、
物は試しとやってみました。
速度は、変わりません(良くもなく悪くもなく)
勉強です、勉強。慣れとかないと・・・
create or replace PACKAGE ADRS_EDIT
IS
/** 住所分析表分解 **/
PROCEDURE PRC_MAIN;
/** 住所分解コード化処理 **/
PROCEDURE PRC_B . . . Read more
次は、プロシージャを機能単位に分割してみました。
EXCEL VBAから、PL/SQLプロシージャを呼び出す準備です。
制御だけは、EXCEL VBAに残し、SQL発行部分はPL/SQLでさせれば速いかと・・・
ただし、PL/SQLだけの比較では、分割した方が格段に遅くなりました。
分けた為に冗長になった部分もあり、オーバーヘッドもきっとあり、
10倍くらいかかります。
create or re . . . Read more
EXCEL VBA の処理が結構遅い(1000件で20分ぐらい)ので、
PL/SQL だったら、少しは速くなるのではないかと、
試行錯誤していたんです(それでも、1000件で15分ぐらい)が、
結局、市区町村名、大字名・小字名の検索でどうしても遅くなってしまいます。
処理の方の見直しでは、どうしても限界があるということで、
インデックスを張ってみました。
検索で使っている項目を重点的に・・・
. . . Read more
住所分解&コード化をPL/SQL化してみました。
実行中、ダンマリになる(経過が見えない)ので、長く感じますが、
EXCEL VBA版よりは、若干速い気はします。
私のPCで、1,000件10分ぐらいの速度です。(EXCEL VBAは、600件で10分ぐらいです。)
PL/SQLのデバッグの勉強にはなりました。※その後、高速化しました。
create or replace PROCEDUR . . . Read more
-- http://blog.goo.ne.jp/frontflug/e/3f42e16c05e77253079aa1f2643f118c から続く
■郵便番号更新
create or replace PROCEDURE YUBIN_SET
IS
/**************************************************************/
/* 郵便番号更 . . . Read more
無名PL/SQLで住所マスタを登録する処理を作って来ましたが、その次の段階は、ストアドプロシージャでしょう
ということで、CREATE PROCEDURE で書きなおしてみました。他、CREATE TABLE等もまとめて一式掲載しました。
□EXCEL VBA:国土交通省国土政策局 国土情報課 > 位置参照情報ファイルをソート、コピーする
これは、事前準備のEXCEL VBA
Option E . . . Read more
EXCEL VBA で出来ることは、PL/SQLでも出来るだろうということで、
勉強のため、マスタ登録(都道府県・市区町村・大字・小字)を作成してみました。
-- 全角ひらがなを半角カタカナに変換するファンクションを登録しておく
create or replace FUNCTION HIRA2HAN (HIRA_STR IN VARCHAR2) RETURN VARCHAR2 AS
HAN_S . . . Read more
郵便番号を更新する(分割する)
http://blogs.yahoo.co.jp/umebocy_ataru/67390379.html
で、何んとか使い物になるかなというところですが・・・
まだまだ遅いので、
VIEWを使って高速化してみようと思い立ちました。
全件読みこむ、試しに更新してみる
というのは、やっぱり無駄です。
問題は、アラビア全角数字の漢数字化ですが、なんとか出来ました。
. . . Read more
ダンマリが辛いので、県単位(47)に分割しました。
BATファイルで起動します。
これで県単位でログが出るので、どこまで実行しているか分かる。
入力データが14000行くらいあり、1000件で1分ぐらいかかるので・・・(汗)
でも、EXCEL VBAよりは速いでしょう。
起動バッチ YUBIN_SET.bat は、↓
CD %^dp0
for /l %%K in (1,1,47) . . . Read more
住所マスタを作成する
http://blog.goo.ne.jp/frontflug/e/c59762c2997b715f689ab5aeb45a0d90
の続き
郵便番号更新の部分が、全件読み直し(SQL)で非常に遅いので
PL/SQL化したらどうだろうかと
まず、入力ファイルをテーブルに落としこむことにしました。
CREATE TABLE ZIP_DATA
( ADRSCD VARC . . . Read more