Export Fixed Length

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von JCB, 26.04.2006.

  1. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Hallo,

    ich habe ein Projekt bei dem ich täglich Text Dateien im und Exportieren muss. Bislang wupp ich das mit M$, will aber von da wech und versuch das bei MySql. Datenbank ist bereits aufgestezt. Importieren kann ich auch schon. Jetzt erwarten meine anderen Schnittstellen immer Fixed Legth Text. ich konnte bislang dahingehend nichts finden:hilfe2: . Kann mir mal jemand den weg zeigen? Vieleicht auch nur andeuten??

    Oh Ja, Die Spalten in den Tabellen haben natürlich schon das richtige Längenformat.

    Danke für einen Ansatz,

    JCB
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 ninguno, 27.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    wie exportierst du denn?
    und welches format genau erwartest du dir?
     
  4. JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Moin,

    das soll hauptsächlich ASCII mit Fester Feldlänge(aus den Vorgaben der MySQL-Tabelle) sein.

    Womit ich jetzt exportiere? Ich dachte ich nutze die Shell und mysqldump. Aber leider kann mysqldump nur CSV oder SQL.

    N Tipp?

    Danke

    JCB
     
  5. #4 ninguno, 27.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    hast du es schon damit probiert?
    Code:
    select * from table into outfile 'c:\\test.txt' fields terminated by '' lines terminated by '\r\n';
     
  6. Kuli

    Kuli Jungspund

    Dabei seit:
    08.11.2005
    Beiträge:
    12
    Zustimmungen:
    0
    Ort:
    Eichwalde
    Hallo,

    das mit SELECT ... INTO OUTFILE ist schon der richtige Weg. Ein SELECT * nützt jedoch herzlich wenig, da MySQL Strings grundsätzlich automatisch kürzt.

    Du kannst jedoch Stringfunktionen verwenden. Wenn Du weißt, daß Du die Spalten a,b,c aus der Tabelle schema.x lesen willst und c ein VARCHAR der Länge 50 ist, dann kannst Du folgende Sytnax verwenden:

    Wenn Du die Länge nicht kennst, kannst Du ab MySQL 5.0 im informationschema danach suchen:

    Völlig abgefahren wird's, wenn Du nicht weißt, ob es eine CHAR-ähnlich Spalte ist oder nicht. Dann verwende für jede Spalte im Select folgende Funktion:

    -Kuli
     
  7. #6 ninguno, 27.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    also bei mir wird nicht gekürzt wenn ich fields terminated by '' verwende
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 JCB, 27.04.2006
    Zuletzt bearbeitet: 27.04.2006
    JCB

    JCB Mitglied

    Dabei seit:
    27.02.2006
    Beiträge:
    42
    Zustimmungen:
    0
    Yupp, ich wusste das wird spannend:
    Weg nach ninguno: Meine MySQL kürzt zwar nicht, gibt aber auch nicht die richtige Länge aus. Wenn ich mich nicht verzählt habe, gibt sie das Feld als (feldlänge *3) aus. Also wenn Feld CHAR(10) dann kommen im txt CHAR(30) raus. Würd mich ja auch mal interessieren warum dat so is.

    Weg nach Kuli: Hört sich sinnvoll an, leider kann ich diese tabelle SCHEMA.COLUMNS in der Datenbank nicht finden. Die Abfrage sollte ja lauten:

    Code:
    select column_name from INFORMATION_SCHEMA.COLUMNS where table_name = 'xy'
    richtig?

    Hmm, da steh ich nun wieder...

    Aber trotz allem möchte ich mich schonmal für die Hilfe bedanken.

    Gruß,

    JCB

    Update:

    Nu wird das Lustig: RPAD ist ja eigentlich auch richtig, wenn ich die richtige Feldlänge weiss dann ist das ja auch einfach.

    Code:
    mysql> select rpad(uid,10,' ') , rpad(C_DU,9,' ') from Master_DB INTO OUTFILE 'data.txt' FIELDS terminated by '' lines terminated by '\n';
    
    Sollte ja auch tun. tut aber nicht sondern macht genau das gleiche wie vorher Multiplizieren mal 3.



    Update: Ich hoffe ich hab mich jetzt nicht als DAUSER geoutet:

    Die Felder waren alle in UTF8 erstellt worden. CHAR(10)*UTF8 =n bischen viel :)

    Umformatiert dann klappts auch nach ningunos Tipp. RPAD ist aber auch der Hammer Tipp, damit kann ich meine unförmigen Felder anpassen.

    Ich hoffe, ich darf noch mitmachen.

    Danke für den Weg und das Ziel.


    JCB
     
  10. Kuli

    Kuli Jungspund

    Dabei seit:
    08.11.2005
    Beiträge:
    12
    Zustimmungen:
    0
    Ort:
    Eichwalde
    Aber natürlich! :headup: :D

    Daß die Feldlänge bei fields terminated by ... erhalten bleibt, wußte ich selbst noch nicht. Daß dabei die echte Byte-Länge genommen wird, ist aber auch wieder recht beschrubbt.

    MySQL ist eigentlich eine geile Datenbankengine, aber macht manchmal sehr seltsame Dinge, die völlig unsinnig sind und die sich keiner erklären kann, und die man auch mit den Millionen von Laufzeitparametern nicht recht abstellen kann.

    Übrigens, dieses INFORMAION_SCHEMA ist ein eigenes Schema, das seit MySQL 5.0 existiert. Sollte bei dir also drin sein, wenn Du die aktuelle Version nutzt.

    -Kuli
     
Thema:

Export Fixed Length

Die Seite wird geladen...

Export Fixed Length - Ähnliche Themen

  1. Emacs exportiert im org-mode nicht mehr

    Emacs exportiert im org-mode nicht mehr: Hallo, da hier auch Fragen zu Eclipse kommen, denke ich, dass ich hier vielleicht richtig bin. Folgendes Problem: Ich kann im Emacs (GNU...
  2. Einzelne Spalte aus MySQL Tabelle exportieren

    Einzelne Spalte aus MySQL Tabelle exportieren: Hallo. Ich möchte gern eine einzelne Spalte (Email) aus einer bestehenden MySQL Datenbank Tabelle (Profiles) exportieren. Ich habe die...
  3. Installierte Drucker exportieren

    Installierte Drucker exportieren: Hallo Gibt es unter Linux, speziell bei SLES 10, eine Möglichkeit alle installierten Drucker von Maschine a nach Maschine b zu exportieren?
  4. Problem bei SQL export auf Windows Freigabe

    Problem bei SQL export auf Windows Freigabe: Hi @ all Leider bin ich nicht so der linux und sql crack, aber ich schlage mich so durch. Nun hänge ich mal wieder bei einem problem. ich...
  5. Variable aus Child-Prozess "Re-exportieren"

    Variable aus Child-Prozess "Re-exportieren": Gibts ne Möglichkeit, wie ich eine in einem Child Prozess erstelle Variable zurückbringe in den Mutterprozess? Ich möchte aus einer Schleife...