PHPでのOracle利用(13)

改めて、索引を消去して一からインサートし直してみた
phpからインサートを発行しようとも思ったが、途中経過の確認が出来ない(出力をフラッシュに出来る技術力が無いから)のでPHPはインサートクエリが詰まったSQLファイルを生成するのに利用した
作成したsqlファイルはSQL PLusで読み込んで実行する

@<ファイル名>

でファイルを読み込める
この場合注意するべきなのは、読み込まれる位置。大抵、ファイルの読み込みはそのEXEが置かれているカレントディレクトリであることが多い
今回も同じ。パスで指定する方法もあるのだろうけど、試していない

sqlファイルは一行で1処理となる形式にした
50830件のインサートは実行しから終了するまで一時間ちょっとの時間が掛かった。索引の存在はあまり時間に関係ないのか?
前回インサートした時は15件ほど失敗していたが、今回は50830に対して50774の成功。つまり56件の失敗だった
…あれ?減るならまだしも、増えてる?
インサート中のフラッシュされる結果は流れが速く、全てを確認できたわけではないが概ね次の通りのエラーが原因で失敗している

SP2-0027: 入力が長すぎます(> 2499文字)。この行は無視されました。

ジオメトリの桁数が長すぎるらしい
まだ失敗している空間情報を確認した分けては無いが、恐らくマルチストリングやマルチポリゴンが失敗の原因だろう
どうやらデフォルトのままではマルチデータ系には弱い様子
カスタマイズできるのか…?