●CSVからAS400DBを生成
CSVファイルに入力されているデータから、AS400のDBを作る
今は、そんな任務を遂行中です(笑)
DBファイルを作るには、最低限必要な事があります
?@DBファイルの名前
?Aレコード様式
?A−1:カラム名(フィールド名)
?A−2:データ型
?A−3:桁数
?A−4:数値の場合は、小数部桁数
?A−5:カラム論理名(フィールド記述)
?Bキー情報(これが無ければ、たんなる入物にしかならず、ランダムアクセスができません_| ̄|○)
●分かっているのは
?A−5だけ (笑)
これって、小麦粉と水だけでホットケーキを作れって言われているみたいな(笑)
どーやって作るねん・・・
ただ、CSVファイルなので、入力値は入手出来ています
それから、ある程度は推測できます
でもね・・・・
●格納方法
《日付》
日付って、西暦年4桁で格納されてはいるのですが
あるカラムは、 20250101, 20250102, 20250103 の様に8桁の数値で入力されていたり
別のカラムは、 2025/01/01, 2025/01/02, 2025/01/03 の様に / できちんと区切られていたり
《論理値》
論理値は、真か偽かの2値を表すためのものです
これも、何種類かの格納方法があって、悩まされています
格納方法?@ 0, -1 恐らく、0が偽、 -1が真でしょう
格納方法?A 0, <空白> これは悲しくて涙がでます
格納方法?B TRUE, FALSE これは分かりやすいですが、めんどくさいです
《数値》
CSVファイルは、文字列オンリーです
ただ、 3.5 とか 11,25 などの文字が入力されていて、これは数値として認識させます
そして、桁数を認識するためには、全データを調べて、桁数と小数部桁数を認識します
でも、15桁で小数部13桁 (整数部は2桁となります)というのがありました
殆どは、99.99という書式で表せます
なんで、こんな小数部が長いデータが有るんだろう? と調べてみたら
●ちょっと(じゃないけど)ひどい(笑)
26.8399999999999 ですって・・・これを見つけた時、さすがに
CSVを吐き出す前のデータベースのデータ型と桁数の情報が無いか確認してほしいと悲鳴をあげました
結局、得られたのは・・・調べても調べきれない(かも知れなない)情報でしたがっくり
なので、26.8399999999999 が 26.84で有る事と、なので4桁(2桁)と認識する
これが必要みたいです
でなければ、小数部桁数の長~~~いカラムについては、格納されているデータを確認して
正しい桁数を認識しなければなりません
ちなみに、データ型や桁数は、CSVファイルを舐めて、自動的に認識させるようマクロを組みました
でも、まさか、これほど多様性に富んだデータベースだとは思いもよらず(笑)
明日から、また楽しめそうです
人気ブログランキング