Aus 2 CSV Tabellen 1 machen per SQL Befehl... HOWTO?

09/08/2009 - 18:33 von Michael Schmitz | Report spam
Hallo NG,

ich habe hier 2 CSV Dateien
von denen ich per SQL Befehl eine machen möchte.
Die Tabellen haben keine Beziehung zu einander und haben auch keinen PK

Tabelle1:
ID BESCH
1 hallo1
2 hallo2
3 hallo3

Tabelle2:
ID2 BESCH2
3 hallo3
4 hallo4

Herauskommen soll das hier:
Tabelle3:
ID BESCH
1 hallo1
2 hallo2
3 hallo3
3 hallo3
4 hallo4

also im Prinzip den kompletten Inhalt von Tabbele1 und Tabelle2
zusammenkopieren
und eine neue entstehen lasse.
Oder kann ich villeicht besser die Tabellen als Text Files behandeln und
einfach Zeilenweise in ein
neues Textfile kopieren?


Gruß

Michael
 

Lesen sie die antworten

#1 Peter Fleischer
10/08/2009 - 07:08 | Warnen spam
"Michael Schmitz" schrieb im Newsbeitrag
news:
...
also im Prinzip den kompletten Inhalt von Tabbele1 und Tabelle2
zusammenkopieren
und eine neue entstehen lasse.



Hi Michael,
die Lösung könnte so aussehen:

Option Explicit On
Option Infer On
Option Strict On

Module Module1

Sub Main()
Dim cnString = "provider=microsoft.jet.oledb.4.0;" & _
"data source=c:\temp\;Extended Properties=""text"""
Dim sql1 = "SELECT * INTO [x3.csv] FROM [x1.csv]"
Dim sql2 = "INSERT INTO [x3.csv] SELECT ID, BESCH2 AS BESCH FROM
[x2.csv]"
If IO.File.Exists("c:\temp\x3.csv") Then
IO.File.Delete("c:\temp\x3.csv")
Using cn As New OleDb.OleDbConnection(cnString)
cn.Open()
Using cmd As New OleDb.OleDbCommand(sql1, cn)
Try
cmd.ExecuteNonQuery()
cmd.CommandText = sql2
cmd.ExecuteNonQuery()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using
End Using
Console.ReadLine()
End Sub

End Module

Dazu die schema.ini:

[x1.csv]
ColNameHeader = True
CharacterSet = 1252
Format=Delimited(;)
DecimalSymbol = ,
IMEX = 1
Col1=ID Integer
Col2¾SCH Text

[x2.csv]
ColNameHeader = True
CharacterSet = 1252
Format=Delimited(;)
DecimalSymbol = ,
IMEX = 1
Col1=ID Integer
Col2¾SCH2 Text

[x3.csv]
ColNameHeader = True
CharacterSet = 1252
Format=Delimited(;)
DecimalSymbol = ,
IMEX = 1
Col1=ID Integer
Col2¾SCH Text

Viele Grüsse
Peter

Ähnliche fragen