Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Informix SE INSERT Felder initialisieren, aber richtig?

Mitglied: RalfHackmann

RalfHackmann (Level 1) - Jetzt verbinden

25.09.2014 um 14:15 Uhr, 1302 Aufrufe, 1 Kommentar

Hallo,

es kommt immer wieder mal vor, dass ich Datensätze in einer CSV Datei erhalte und diese in die Datenbank unseres ERP Systems per INSERT importieren muss (hier Stücklistenpositionen)
Da die in entsprechenden Tabelle mehr Felder enthält wie die Spalten der zu importierenden CSV Datei, habe ich ein Problem mit der Initialisierung der restlichen Felder.
Denn wenn ich nur die Felder der CSV-Datei importiere, bleiben die anderen undefiniert und zeigen später in der Anwendung unsinnige Zeichen an.
Ich behelfe mich damit, indem ich im ERP System einen default Datensatz anlege, oder heraussuche und und per select undloade.
Diesen nutze ich dann als Vorlage für einen awk Befehl, indem ich die Felder aus der zu importierenden CSV-Datei an den richtigen Stellen einfüge.
Diese neue CSV Datei (hier fksag_import_tmp.csv) importiere ich dann Per LOAD un INSERT in die Tabelle.

Das Ganze funktioniert zwar, aber irgendwie kommt mir das unsauber vor!

Wie geht man hier normalerweise vor?

Ich muss zugeben, dass ich mich mit SQL Prozeduren nicht auskenne, falls die Vorgehensweise in diese Richtung geht.

Gruss

Ralf

# Aufbereiten der CSV-Datei fuer Import fksag 
# Pos1 -> aplannr 
# Pos2 -> arbgang 
# Pos3 -> pos 
# Pos5 -> te,tm 
# Pos6 -> tr 
# Pos7 -> tp 
gawk -v betrieb=${betrieb} --field-separator=";" '{printf "0;%s;0;%s;0;0,0;0;0;%s;99999999;%s;BPSM;0;text1;text2a; ; ;%s;%s;%s;0,0;%s;0,0;0,0;0,0;0,0;M;M;1,0;1,0;1,0;0;0;50100;1,0;0; ;1,0;1;0,0;1,0;1;N;0;0;0,0;1;1;0,0;0,0; ;0; ; ;%s;sql;0; ; ; ; ; ;100,0;100,0;100,0; ; ;P;0;0,0;0; ;0; ;\n", betrieb, $1, $3, $2, $6, $5, $5, $7, strftime("%Y%m%d") }' $datei > fksag_import_tmp.csv; 
 
dbaccess 1>> $log 2>&1 << EOSQL 
 
  DATABASE $db; 
   
  -- Import in fksag 
  LOAD FROM fksag_import_tmp.csv DELIMITER ";" 
  INSERT INTO fksag 
  sa, firma, werk, aplanr, aplavar, losgr, cd_index, gueltigv, pos, gueltigb, arbgang, arbplatz, aggruppe, text1, text2a, text2b, text2c,      
  tr, te, tm, taktme, puffer, liege, tefix, tmfix, tezuschl, zeitkz1, zeitkz2, posmenge, basisme, nutzen, lohnart, lohngrp, kostenst,    
  persfak, grverrkz, erfkz, schwgr, uelapkz, translos, splitfak, splittkz, rechkz, ruestaus, ausstufe, ausproz, bdekz, anzdruck, abwproz,     
  lauf, aendgr, anzmasch, kzopt, cd_status, anldat, anleger, aenddat, aenderer, pruefpl, kzcaq, erfkztr, kalksumm, mindgut, tolneg, tolpos,      
  aplatzb, apgrupb, apagbkz, prkz, sgewicht, sgeweinh, taetgrp, taetlavo, filler99    
  ); 
EOSQL
Mitglied: MadMax
26.09.2014 um 16:44 Uhr
Hallo Ralf,

zwar ist Informix nicht mein Gebiet, aber Deine Frage läßt sich ja auch einigermaßen allgemein beantworten.

Sauber lösen kann man es womöglich direkt beim Import, daß man dort definieren kann, was mit den Spalten passiert, die nicht im Import sind. Ob Informix das kann weiß ich nicht.

Wenn Du die Tabelle abändern kannst und es Standardwerte sind, die in die fehlenden Spalten kommen (also keine für diesen Import speziellen Werte), dann kannst Du bei der Tabellendefinition für die Spalten auch Standardwerte festlegen.

Mal abgesehen davon, daß auf einigen Spalten Standardwerte existieren gehe ich normalerweise den Weg, daß ich die Daten 1:1 in eine temporäre Tabelle importiere und von da aus die Zieltabelle fülle, wobei ich dann eben auch beliebige andere Spalten belegen kann. Der Weg ist im Grunde nicht viel anders als Deiner. Du bereitest die Daten auf, schreibst sie in eine temporäre CSV-Datei und importierst sie dann in die Zieltabelle. Ich importiere die Daten in eine temporäre Tabelle, bereite sie auf und schreibe sie dann in die Zieltabelle. Und wenn die CSV-Datei nicht 1:1 in die Tabelle paßt, dann muß man die Daten an irgendeiner Stelle anpassen, da ist nichts unsauberes dabei.

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Datenbanken

Informix SE Tabelle alle Felder auf NULL prüfen

Frage von RalfHackmannDatenbanken4 Kommentare

Hallo, ich muss bei mehreren Tabellen in einer Informix SE Datenbank alle Felder auf NULL prüfen. Ich bin hierbei ...

Datenbanken

BULK INSERT mit Auslassen von Feldern, bzw. ergänzen von Feldern

Frage von TiCarDatenbanken1 Kommentar

Hi, ich würde gerne eine CSV Datei in eine Tabelle laden und die Tabelle hat aber noch zusätzliche Felder ...

VB for Applications

Von einer Exceltabelle Daten in eine Informix Datenbank übertragen

Frage von VoosjeyVB for Applications4 Kommentare

Hallo Ich habe eine Excel-Datei bei der ich von einer Informix Datenbank über eine MS Query Verbindung (ODBC Manager/ ...

CPU, RAM, Mainboards

PC braucht lange zum initialisieren vor dem Booten

gelöst Frage von MarkowitschCPU, RAM, Mainboards9 Kommentare

Hallo liebe Techniker, hab folgende PC zusammengebaut : Mainboard : ASUS - X99-A II CPU : Intel - Core ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 4 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung26 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Windows 10
Unter Windows 10 Home 64Bit (1709) kommt Fehler beim Aufruf von verschiedenen Systemprogrammen wie z.B. Gerätemanager
Frage von bitshopWindows 1017 Kommentare

Hallo, beim meinem Onkel haben wir seit längerem das Problem, dass z.B. beim Aufruf des Gerätemanagers eine Fehlermeldung kommt ...