csvファイルをテーブルに登録するには?


かな  2007-06-01 01:35:51  No: 98831

vb  初心者です。
  フォルダにファイル(csv)の有無を確認し、ある場合
テーブルに登録しようと思います。
登録時に既存レコードがある場合はUpdate、なければInsert
CSVファイルのレコード数だけ繰り返したいです。
os:win2000
vb5.0+oracle8i
サイトでみたものをコピー、貼り付けでやってみましたが
うまくいかなかったので、ここで助けを求めます。


助けが居るなら説明を・・・。  2007-06-01 01:47:34  No: 98832

> サイトでみたものをコピー、貼り付けでやってみましたが
> うまくいかなかったので、ここで助けを求めます。

どのサイトの何をコピーしたかもわからず、
何がどううまくいかないかの説明もない。

助けをもとめます。
といわれても何を助ければ良いのでしょう?


かな  2007-06-01 03:16:16  No: 98833

ファイルの有無を確認
  ファイルの読み込み
  テーブルに登録
それぞれ  違うサイトから持ってきたもので、合わせると
エラーで動かないですよ。  
全くの初心者なので、構文をどうまとめるかがわかりません。
お願いします


特攻隊長まるるう  2007-06-01 03:41:20  No: 98834

>合わせるとエラーで動かないですよ。  
合わせなければ動くと?
なら、合わせない方向で考えてみてください。
それぞれが違う処理ですから、まとめる必要がないと思います。
関数化して順に実行すればいいのでは?


かな  2007-06-01 03:46:01  No: 98835

関数化して順に実行すればいいのでは?
  流れ的にはどうすればいいですか?
if分の中でloop  させますか?


助けが居るなら説明を・・・。  2007-06-01 04:43:10  No: 98836

>合わせるとエラーで動かないですよ。  

ごめん、まずさ。構文の前に、回答者が戸惑わないように、
どう質問すればよいか一通り目を通してください。

http://www.linux.or.jp/beginners/question.html


かな  2007-06-01 17:55:20  No: 98837

登録時に既存レコードがある場合はUpdate、なければInsert
CSVファイルのレコード数だけ繰り返したいです。
ここの処理をどうすればいいかわかりません。


もげ  2007-06-01 18:19:03  No: 98838

http://www.linux.or.jp/beginners/question.html
でいえば、
>情報を出すのを惜しまない, めんどくさがらない 
>情報は具体的に書きましょう 
>「うまく動きません」ではわかりません 
>エラーメッセージは情報のカタマリです 

のあたりの情報が足りません。

どうすれば  って、アルゴリズムのご質問は板違いですが、

(1)メイン処理

・ファイルのOpen
・DBコネクション確立
・1件目の読み込み
・以下の処理をEOFまで繰り返し
  ・レコード存在チェック
    ・存在する場合
      ・Update処理
    ・存在しない場合
      ・Insert処理
  ・次の行を読み込み
  ・LoopEnd
・ファイルのClose
・DBコネクション切断

個人的印象では、
レコード存在チェックは別関数にしたほうが綺麗にまとまると思います。

VBのご質問ならば、
どんなコードを書いていて
何がどうなってどううまくいかないのか
具体的に書いたほうが解決が早いでしょう。
ただし、あちこちからパッチワークしただけでの丸投げなら
放置されると思いますので、
自分で努力した痕跡を示しましょう。

http://www.hyuki.com/writing/techask.html


ささき  2007-06-01 19:18:59  No: 98839

> 登録時に既存レコードがある場合はUpdate、なければInsert
> CSVファイルのレコード数だけ繰り返したいです。

かなさん、何か勘違いしているか分かりませんが、
2chとちがってやりたいことだけ
を伝えられても作ってくれという掲示板ではないのです。

>ここの処理をどうすればいいかわかりません。
どうすればいいかわからない・・・。
ではなく、うまくいかなかった内容、

例えば、
「オブジェクトが見つかりません。」
「無効な型です。」などのエラーが出る。
とかいう症状、あなたの不具合の内容を伝えましょう・・・。

対策方法は、エラーの内容、不具合の内容に応じて千差万別なのです。


かな  2007-06-01 21:55:35  No: 98840

もげ、  アドバイスありがとうございます。
今後、質問時に注意します。

さっそくですが、
CSVファイルをOracleにインポートするには
SQL*Loaderを使う他はありませんか?


かな  2007-06-01 22:05:54  No: 98841

ささき様、

あくまで、勉強のためなので、他人が作ってくれても
うれしくありませんよ。
VBとDBを勉強始まってばかりので、プログラムの流れが
よくわからなくて、質問しただけです。
僕の質問の仕方が悪かったかもしれません。
今後、質問時に注意します。


ささき  2007-06-01 22:22:02  No: 98842

> CSVファイルをOracleにインポートするには
> SQL*Loaderを使う他はありませんか?

もげさんへの解答に割り込む形で申し訳ないですが、
ファイルを読み込んで、Insert文を繰り返す方法もあるので、
他の方法もあるにはあります。<一般的か?という議論はさておき

ででで
そういったやりたいこと、
「SQL*Loaderは使いたくは無いのです。」とか、
「接続は(ADO?ODBC?)でやりたいのです。」とかいう、
またどのサイトから持ってきたサンプルをどうコピペしたのか?
とかいう情報をかなさんからもらわないと・・・。ってことが言いたかったのですよ。

かなさんの場合、何の制限事項も無いので
書いていない=結果が全てで手段は問わずなの?と思ってしまうので・・・。
有償の外部コンポーネントを使ってとか、
フリーソフトの○○を使ってとか言う解答もつかっても実現できれば全て・・・。という判断をしてしまいます。


かな  2007-06-01 22:37:57  No: 98843

ささき様

あ!そういうことですか。
何度もすみませんでした。


ささき  2007-06-01 22:43:15  No: 98844

>何度もすみませんでした。
いえいえ、

でで、かなさんは、見てるか分からないのですが、
「VBでデータベース」
http://homepage2.nifty.com/inform/vbdb/
は参考にされてます?

ここを参考にすると、Oracleへの登録処理は問題ないように思いますが・・・。


かな  2007-06-01 23:06:23  No: 98845

でで、かなさんは、見てるか分からないのですが、
「VBでデータベース」
http://homepage2.nifty.com/inform/vbdb/
は参考にされてます?

サイトの提供ありがとうございます。
参考はしてますけど、方法もいくつかありした、
どのほうほうが、一番最適かがわかりません。
それぞれの特徴などは調べてみましたが、どう違うかは
思いつきませんね。  ごめんなさい。
専攻は心理学なので、PCの基礎知識もないです。
ただ、掲示板などをみて  過去にあった面白いプログラムを
自分でみることにしています。

そこでなんですけど、もうひとつの質問です。
DBとの接続はできました。
CSVファイルをテーブルに登録しようとしていますが
こういう場合って  、結合になりますか?
結合でいいなら、外部結合と等価結合どちらが
いいでしょうか?


特攻隊長まるるう  2007-06-01 23:27:24  No: 98846

データベースのレコード更新の基本は、
1つのテーブルに対し、
主キーを指定して、
1レコードずつ行います。

>こういう場合って  、結合になりますか?
なりません。


ささき  2007-06-01 23:34:30  No: 98847

>専攻は心理学なので、PCの基礎知識もないです。

お、ニアミス
私も大学の専攻は社会心理学/臨床心理学でした・・・。
っとそれはさておき、

>CSVファイルをテーブルに登録しようとしていますが
CSVファイルに記録されているデータではなく、
CSVのファイル自身を登録ということでしょうか?
#一般的には前者のような意味合いだと思いますが、
#電子ファイルをデータベースに登録も出来るのです。

もし、それでしたら、サンプルがこの広いネットの世界の
どこかに落ちてた気がするので探してみます。


特攻隊長まるるう  2007-06-01 23:37:39  No: 98848

>CSVファイルに記録されているデータではなく、
>CSVのファイル自身を登録ということでしょうか?

一番最初の質問に
>CSVファイルのレコード数だけ繰り返したいです。
とあるから、前者だと思うよ。


ささき  2007-06-01 23:43:20  No: 98849

http://blog.goo.ne.jp/marco_may/e/e5281772fcdb347e325fda48207267f6

ですけね。BLOB型ってのに登録する方法が記録されています。


ささき  2007-06-01 23:46:56  No: 98850

> CSVファイルのレコード数だけ繰り返したいです。
> とあるから、前者だと思うよ。

キャー、確かに<先の投稿は忘れてください。
#でも過去ログとして役に立つ日が来るのを・・・(ないかorz。

特攻隊長まるるう さんの言うとおり、
外部結合は使いません。
Insert文は1つのテーブルに対して行うので
もしCSVファイルの1行のデータから複数のテーブルに登録する場合
そのテーブルの数分、行う必要があります。


ささき  2007-06-01 23:49:15  No: 98851

CSVの中身の読み取り方は
[テキストファイル(TXT・CSV)の読込・書込み]
http://hanatyan.sakura.ne.jp/vbhlp/txt01.htm

を参考にしてみてください。


?  2007-06-01 23:50:49  No: 98852

心理学やるとこんなまとまりの無い漠然とした質問に対して忍耐強くなれるの?

勉強する奴の環境にOracleとVBが備わっているの?個人の資産で持てる
ような金額じゃないと思うのだけど・・・>Oracle

Win2K+VB5 ってさ、Win2K の時代の VB5 なら有償でしょう。
今みたいにタダの簡易パッケージ版じゃないし。その当時の
Oracle8i も最新だしね。確か300万くらいしたはず。

バグ持ちソフトの改造をやったこともないのに押し付けられて
しかも当時の資料は何も無い、なんて環境で気持ちばかり焦って
いる状況?
わからんけどさ、心理学やってたなら、もう少しまともな質問方法
ってあるでしょ?


ささき  2007-06-02 00:08:51  No: 98853

>個人の資産で持てるような金額じゃないと思うのだけど・・・>Oracle

個人の収入がいくらか知らないけれど、
Windows/Linux/Solarisの中から選べて
Windowsだけとかなら1万円ちょっとで年1回

Windows/Linux/Solarisの全てのCDが年4回その時の最新版が
送られてきて8万円ちょっとだったけれど、
さすがにその程度っていったら怒っちゃうかもしれないけれど出せない?


ささき  2007-06-02 00:12:52  No: 98854

>OTN Software Kit の話です
http://otn.oracle.co.jp/upgrade/index.html#A1

今は少し値上がりしてるね。


ささき  2007-06-02 00:16:32  No: 98855

>心理学やるとこんなまとまりの無い漠然とした質問に対して忍耐強くなれるの?

心理学自体が、心という漠然としたものを研究するからかな?
よくあたる占いみたいなことも出来るよ。(パーナム効果)


??  2007-06-02 00:25:48  No: 98856

>個人の資産で持てるような金額じゃないと思うのだけど・・・>Oracle

資産って、いったいいくらだと思ったんだ。見事に誤爆


言ってやるなよ  2007-06-02 00:31:31  No: 98857

言ってやるなよ、
?のように4万出すと生死にかかわるニートもいるんだし。


?  2007-06-02 01:16:42  No: 98858

http://www.atmarkit.co.jp/news/200201/11/oracle.html
9i で 250 万円

8 なら妥当でしょ。

上の奴らは、2004 以降の新価格体系のこと言ってるでしょ?


通りすがり  2007-06-02 01:27:24  No: 98859

>上の奴らは、2004 以降の新価格体系のこと言ってるでしょ?

ずっとROMってたけど
勉強する奴の環境には開発ライセンスだけで十分では?
俺、これ使って勉強してるんだけれども・・・。

運用ライセンスまでつける必要あるの?
勉強する奴の話じゃなかったの?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加