-
scan replace mit sql
Hallo an *ALL,
hier eine kleine Aufgabe für die freien Tage :-)
Ich bekomme eine csv Datei. Diese csv Datei hat als Feldtrenner den ;
Soweit alles ok.
Jetzt stellt sich folgendes heraus:
In einem Adressfeld ist das ; Zeichen enthalten.
Beispiel:
PHP-Code:
;DE;"PHOENIX VERF & GLAS";G CANTE;HUIZEN,NH,
Die Felder sind ohne Feldbegrenzer in der csv Datei.
Nur die Felder wo auch das ; Zeichen enthalten ist haben die "....." als Feldbegrenzer
Frage an die SQL Profis:
Gibt es eine Funktion im SQL nach dem Motto
- Durchsuche den String
- wenn ;" gefunden dann ersetzten von ; mit _ bis zum nächsten ;"
Dieses Beispiel sollte dann folgendes Ergebnis erhalten
PHP-Code:
;DE;"PHOENIX VERF &_ GLAS";G CANTE;HUIZEN,NH,
Gruß an alle
Michael
und erholsame Feiertage
-
in einem ähnlichen Fall konnt ich nach '; ' (Semikolon blank) suchen, da die csv-Trenner immer direkt von einem Zeichen gefolgt waren.
vllt passt das bei dir auch
schöne Feiertage
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Nebenbei bemerkt: hier ist nicht das ";" durch "_" zu ersetzen sondern "& AMP;" durch "&" ...
Geruhsame Festtage, bleibt gesund!
-
Du willst also mit SQL in einer .csv-Datei, die vermutlich im IFS liegt &.AMP; durch & ersetzen?
Am einfachsten geht das mit den neuen IFS-IBM Services und REPLACE.
Etwa so:
Code:
Call Qsys2.Ifs_Write_Utf8(Path_Name => '/Home/Dir1/Dir2/YourIfsFile.csv',
Line => Replace(Get_Clob_From_File('/Home/Dir1/Dir2/YourIfsFile.csv'),
'&.AMP;', '&'),
Overwrite => 'REPLACE',
End_Of_Line => 'NONE')
Achtung: Ich habe zwischen & und AMP; einen Punkt gesetzt, da ansonsten nur ein Ampersand angezeigt werden würde.
Birgitta
-
Damit zerstörst du die Bedeutung des HTML-Tags.
Du bräuchtest da eher ein HTML-Decode um die Zeichen korrekt zu ersetzen.
Andererseits frage ich mich, wie du die Datei generell verarbeitest.
Bei einem CPYFRMIMPF wird eine Datei komplett und korrekt in Einzelfelder zerlegt.
Da stören Semikolon zwischen Anführungsstrichen absolut nicht.
Zusätzlich erhält man auch eine korrekte Typisierung (Zeichen, Zahlen, Datum).
Wenn man das alles selber macht sollte man halt die CSV-Methden auch alle implementieren.
Es können schließlich immer solche Fälle entstehen.
Und wenn da schon HTML-Encode drin steht, wird das mit Sicherheit auch alle anderen Sonderzeichen betreffen.
https://www.designerinaction.de/tipp...sonderzeichen/
-
Stopp
es geht hier um das einlesen einer csv Datei die wir vom Transportdienstleister bekommen.
Da sind Sendungsdaten enthalten.
Die Datei hat den Aufbau das die Felder mit ; getrennt sind.
Bei Feldinhalten in denen im Inhalt auf das ; Zeichen vorkommt sind mit den " als Feldtrenner gekennzeichnet. Die anderen Felder haben keine Feldtrenner
Beispiel: Felder getrennt mit ;
PHP-Code:
42781;DE;ALUTHERM GLASHANDEL INDUSTRIET;F. RAAP;HEERHUGOWAARD,NH,1704;NL
Der nächste Satz :
PHP-Code:
42781;DE;"3SN GLAS & METAAL B.V.";3SN BV;BERGEN LB,LI,5854;NL
Da sehen wir das "3SN GLAS & METAAL B.V." in dem Feld.
Bevor ich das verarbeite müssten die Inhalte von ;"........"; geprüft und ggf. das ; ersetzt werden
-
Das habe ich schon verstanden. D.h. aber, dass eure Methode des Einlesens einfach falsch ist, da man nicht einfach einen Split mit Semikolon machen darf.
Man sollte schon die Werte mit Anführungszeichen korrekt auslesen, dann stellt sich das Semikolon-Problem nicht, was eben der CPYFRMIMPF leistet.
Da du den Dateiaufbau ja genau kennst, was hindert dich da am Import per CPYFRMIMPF?
-
Hi,
an dem CPYFRMIMPF hindert mich eigentlich nichts:-)
Ich wollte es nur mal mit dem SQL probieren :-)
Wir sind doch modern
Für alle schöne Weihnachten und alles Gute für das nächste Jahr
-
Nun ja, wenn SQL auch CSV importieren könnte, wäre es modern.
Nur weil man mit SQL IFS lesen kann, heißt es nicht, dass es auch sinnvoll ist.
Ich habe letztens ein Programm beschleunigt, weil IFS_WRITE per SQL verwendet wurde statt CPYTOIMPF.
100 Zeilen mit SQL schreiben dauerte 10 Sekunden, CPYTOIMPF 0,1 Sekunden.
Das hat man dann von der "Moderne".
In den 70ern bekam ich auch schon mal zu hören:
"Wir haben jetzt Computer, da dauert es nun mal was länger."
DAS hat sich nun nicht bewahrheitet.
Similar Threads
-
By franz77 in forum NEWSboard Programmierung
Antworten: 22
Letzter Beitrag: 21-12-18, 17:29
-
By Etherion in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 06-11-13, 18:24
-
By GEA in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 05-04-11, 09:02
-
By Jamikl in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 19-03-04, 13:02
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-09-01, 16:37
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks