+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Eigener Datentyp

  1. #1
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    203

    Standard Eigener Datentyp

    Hallo,

    ich habe Zahlen in diesem Format 000.000.000

    Kann ich einen Datentyp erstellen, damit bei der Eingabe auf dieses Format geachtet wird?

    Es gibt dazu den Befehl create TYPE() Was jedoch in die Klammer kommt ist nicht ganz klar.

    Karl

  2. #2
    ads
    ads ist offline Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    3.405

    Standard

    Hier ist mal ein ausführliches Beispiel, wie man einen neuen Datentyp erstellt:

    BOOLEAN datatype with PHP-compatible output - ads' corner
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    akretschmer ist offline Erfahrener Benutzer
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    4.473

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Hallo,

    ich habe Zahlen in diesem Format 000.000.000

    Kann ich einen Datentyp erstellen, damit bei der Eingabe auf dieses Format geachtet wird?

    Es gibt dazu den Befehl create TYPE() Was jedoch in die Klammer kommt ist nicht ganz klar.

    Karl

    Code:
    test=*# set lc_numeric='de_DE.UTF-8';
    SET
    test=*# commit;
    COMMIT
    test=# select to_char(123456789, '999G999G999');
       to_char
    --------------
      123.456.789
    (1 row)
    
    test=*# select to_number('123.456.789', '999G999G999');
     to_number
    -----------
     123456789
    (1 row)
    
    reicht das auch?

    Andreas
    --
    Papa-Kind-Kur vom 8. bis 29. September ;-)
    PostgreSQL Hosting
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    http://www.amazon.de/gp/registry/2APKFICAIYMWB
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #4
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    203

    Standard

    @akretschmer Diese Möglichkeit scheint mir doch um einiges einfacher zu sein.
    test=*# set lc_numeric='de_DE.UTF-8';
    Es kommt aber eine Fehlermeldung. (Habs direkt in die Konsole eingetragen)
    Code:
    select to_char(123456789, '999G999G999');
    
    Das geht aber.

    Code:
    invalid value for parameter "lc_numeric": "de_DE.UTF-8"
    
    @ads: Vielleicht geh ich das noch später an, ist halt echt ein Aufwand. Erst die Funktionen, Operatoren, Klassen. Da wäre ich eine ganze Weile beschäftigt.
    Geändert von karl_ha (16.04.2009 um 11:33 Uhr)

  5. #5
    ads
    ads ist offline Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    3.405

    Standard

    Du brauchst nicht alles davon, jedenfalls nicht, wenn du den Datentyp nur zum Speichern von Daten nutzen willst.

    Die Operatoren ect. sind notwendig, wenn du mit anderen Datentypen interagieren möchtest, also z. B. Vergleiche durchführen oder Casten auf andere Typen.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #6
    akretschmer ist offline Erfahrener Benutzer
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    4.473

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    @akretschmer Diese Möglichkeit scheint mir doch um einiges einfacher zu sein.
    Es kommt aber eine Fehlermeldung. (Habs direkt in die Konsole eingetragen)
    Code:
    select to_char(123456789, '999G999G999');
    
    Das geht aber.

    Code:
    invalid value for parameter "lc_numeric": "de_DE.UTF-8"
    

    Vermutlich kennt Dein OS das nicht, Du wirst sie dort erst anlegen müssen.

    Andreas
    --
    Papa-Kind-Kur vom 8. bis 29. September ;-)
    PostgreSQL Hosting
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    http://www.amazon.de/gp/registry/2APKFICAIYMWB
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    203

    Standard

    Das mit den Datentyp selbst erstellen bekomme ich wohl nicht hin, bzw. ein einfaches Beispiel wäre vielleicht anschaulicher.

    Wie lange braucht dazu ein freiberuflicher DB-Programmierer?

  8. #8
    ads
    ads ist offline Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    3.405

    Standard

    Das hängt davon ab, was du alles benötigst ...

    Deine Vorgaben reichen nicht unbedingt als Lastenheft aus ;-)
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  9. #9
    akretschmer ist offline Erfahrener Benutzer
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    4.473

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Das mit den Datentyp selbst erstellen bekomme ich wohl nicht hin, bzw. ein einfaches Beispiel wäre vielleicht anschaulicher.

    Wie lange braucht dazu ein freiberuflicher DB-Programmierer?
    Was genau willst Du denn machen damit? So, wie ich Dich verstanden habe, geht es nur darum, 'normale' Zahlen in einer bestimmten Formatierung EIN/Auszugeben. Dazu nannte ich eine Lösung.

    Hast Du allerdings irgend was besonderes an solchen Zahlen, ich spinne mal: 100.001.010 * 2 soll 100.001.020 sein, dann brauchst halt echt einen neuen Datentypen und dazu die passenden Rechenoperatoren und so weiter.

    Also, sag an...

    Andreas
    --
    Papa-Kind-Kur vom 8. bis 29. September ;-)
    PostgreSQL Hosting
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    http://www.amazon.de/gp/registry/2APKFICAIYMWB
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    203

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Das hängt davon ab, was du alles benötigst ...

    Deine Vorgaben reichen nicht unbedingt als Lastenheft aus ;-)
    Logo, habe noch nicht ein Lastenheft erstellen müssen. Was kommt da alles rein?

    Der Datentyp soll im Format 000.000.000 sein.
    Also drei Pakete mit je 3 Zahlen welche 0-9 umfassen können
    Das Trennzeichen ist ein Punkt

    Der Datentyp muss als PrimaryKey verwendet werden können

    Es muss keine Addition etc stattfinden können.

    Da ich immer gerne auch etwas lernen möchte würde ich auch gerne den Weg dazu sehen. Auf der postgres.org Seite steht ja schon etwas dazu. Bei mir hat es aber noch nicht klick gemacht.

    Karl

+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum