入力データにカンマがあります。カンマ区切りではありません。
このデータをINSERT文を使ってORACELデータベースに取り入れるにはどうしからよいですか。
例えば外国の住所の区切り、社名等にあるカンマ、 CO.,LTD等
それは、Oracle 系コミュニティ向きの話題なのでは?
VB の掲示板に投稿している割には、VB について全く触れていませんし。
> ORACELデータベースに取り入れるにはどうしからよいですか。
カンマがあろうと無かろうと、そのまま、
INSERT INTO TBL1 (COL1, COL2) VALUES ('CO.,LTD', 'CO.,LTD.')
で良いのではないかと。
まぁ、パラメータ クエリを使った方が良いとは思いますが。
「魔界の仮面弁士」さま。言葉が足りませんでした。
要するにカンマデータは次の書きます。
input #file, fd1, fd2, fd3
INSEET INTO 〜 VALUE ('" & fd1 &"', '" & fd2 & "', '" & fd3 & "')
例えばfd2の項目にカンマデータがありますと桁がずれます。
このようなデータがある場合はINSERT文は使えませんか?
以下、ORACLEに関係することなので質問しずらいのですが
他の命令は処理スピードが遅いのでINSERT文にこだわったのです。
よろしくお願いします。
いまさらさん
魔界の仮面弁士さんがおっしゃっているように
VBの話題ではないですので、Oracle系コミュニティーに
投稿された方がよいと思います。
しかるべきところに投稿された方が、
的確なアドバイスを受けられやすいですよ。
疑うところが間違っています。
Input文で読み込んだ時にずれているのでしょう。
Input文はカンマ区切りで読み込む仕様です。
Line Input文で一行単位で読み込んで,InStr関数やMid関数を使って分割していくのがよいと思います。
> 例えばfd2の項目にカンマデータがありますと桁がずれます。
桁ズレは、データの入出力方法の問題では無いでしょうか。
Oracle を使っているかどうかは、関係の無い話かと思います。
また、最初の質問文にあるカンマというのは、
全角「,」であって(CO.,LTD)、
半角「,」では無かったはずです。
何が問題になっているのか、質問内容を整理しなおしてみてください。
> 例えばfd2の項目にカンマデータがありますと桁がずれます。
当方環境ではずれません。ファイルの作成方法を確認してください。
-------------------
Dim a As String, b As String, c As String, d As Long, e As Date
a = "CO.,LTD"
b = "CO.,LTD."
c = "12,345"
d = 12345
e = Now()
Open "C:\sample.txt" For Output As #100
Write #100, a, b, c, d, e
Close #100
Dim fd1 As String, fd2 As String, fd3 As String, fd4 As Long, fd5 As Date
Open "C:\sample.txt" For Input As #200
Input #200, fd1, fd2, fd3, fd4, fd5
Close #200
Debug.Print "fd1=[" & fd1 & "]" 'fd1=[CO.,LTD]
Debug.Print "fd2=[" & fd2 & "]" 'fd2=[CO.,LTD.]
Debug.Print "fd3=[" & fd3 & "]" 'fd3=[12,345]
Debug.Print "fd4=[" & fd4 & "]" 'fd4=[12345]
Debug.Print "fd5=[" & fd5 & "]" 'fd5=[2009/02/02 11:06:01]
'『"12,345",12345,"CO.,LTD","CO.,LTD.",#2009-02-02 11:06:01#
'』
Shell "notepad.exe C:\sample.txt", vbNormalFocus
-------------------
ちなみに、Input # ステートメントというのは、Write # ステートメントで
出力したデータの読み込みに使うものであって、Print # ステートメントで
書きこんだ物や、CSV ファイルの読み込みに使う物では無い事にも注意が必要です。
返事をくれた皆さんへ。
項目は"(ダブルコーティション)で囲まれていません。半角も全角も関係ありません。
"〜,〜"の場合に正常に作動します。
要するにカンマ付のデータはデータ上にあるカンマと区切りのカンマの区別がつきません。
当たり前ですね。
入力の形式を変更します。
どうもありがとうございました。
ツイート | ![]() |