Announcement

Collapse
No announcement yet.

Formatieren einer Datumsspalte bereits beim anlegen einer Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formatieren einer Datumsspalte bereits beim anlegen einer Tabelle

    Hallo,

    Frage:
    Ist es möglich, eine Datumsspalte bereits beim anlegen der Tabelle zu formatieren (die Servereinstellung kann ich net ändern)?
    z.B.
    ....
    Eintragdatum date 'DD.MM.YY',
    ....
    (bzw. so ähnlich, obiges hab ich natürlich (ohne Erfolg) selbst schon ausprobiert...

    danke

    gruß
    christoph

  • #2
    Hallo Christoph,

    wenn man das Datumsformat einmal beim Anlegen angegeben hat, kann man es nicht mehr ändern.
    Man kann aber ueber ALTER SESSION das Anzeigeformat aendern. Weiterhin kann man die Variable NLS_DATE_FORMAT so einstellen, dass die Anzeige passt (siehe auch NLS_LANG).

    Hoffe das hilft.

    Gruss

    Stefa

    Comment


    • #3
      hallo stefan,

      erstmal vielen dank für die antwort....
      wie geschrieben, kann ich am server leider nix verändern => nls_lang fällt flach.

      ich will das datumsformat auch nicht nach dem anlegen ändern, sondern beim erstmaligen anlegen der tabelle vorgeben... frage: wie ist das möglich (syntax)

      danke

      gruß
      christop

      Comment


      • #4
        Hallo,

        die Parameter sollst du ja auch nicht auf dem Server aendern. ALTER SESSION wirkt sich nur auf deine SESSION aus und nicht auf den SERVER.

        Die NLS_LANG Parameter gibt es auch im Client. Z.B. in der WIN-Registry. Sie wirken sich also auch nicht auf den Server aus, sondern auf deinen Client. Musst du mal in die Doku schauen. Auswendig kriege ich es leider auch nicht mehr detailliert zusammen.

        Das Datumsformat kann man beim Anlegen einer Tabelle nicht angeben. Du kannst hoechsten einen VIEW dureberlegen, der dann das Datum immer mit einem bestimmten Format ausgibt.

        Gruss

        Stefa

        Comment


        • #5
          Hallo Alfons,

          ich brauch das öfter mal:

          entweder alter session set NLS_DATE_FORMAT='DD.MM.YY'

          oder

          in der registry den Eintrag NLS_DATE_FORMAT setzen, oder als Environment-Parameter, ebenfalls mit NLS_DATE_FORMAT

          Gruß
          Usch

          Comment


          • #6
            Sag ich doch

            Comment


            • #7
              Hallo,

              wenn du unbedingt eine "harte" Formatierung in der Tabelle wünschst, dann geht das nur über eine View.
              Die Tabelle heist z.B. Datum_Tabelle und hat zwei Felder (NummerFeld und DatumFeld) dann würde das so aussehen: <PRE>
              CREATE OR REPLACE VIEW Datum_View as
              SELECT NummerFeld, TO_CHAR(DatumFeld, 'DD.MM.YYYY') DatumFeld
              FROM Datum_Tabelle;</PRE>

              Willst du die View auch gleich noch zum Bearbeiten nutzen, dann kannst du noch einen Instead OF-Trigger erstellen:<PRE>
              CREATE OR REPLACE TRIGGER iud_datum_tabelle INSTEAD OF INSERT OR UPDATE OR DELETE ON datum_view
              begin
              if INSERTING then
              INSERT INTO datum_tabelle VALUES(:NEW.NummerFeld, TO_DATE(:NEW.DatumFeld, 'DD.MM.YYYY'));
              elsif UPDATING then
              UPDATE datum_tabelle SET
              NummerFeld = :NEW.NummerFeld,
              DatumFeld = TO_DATE(:NEW.DatumFeld, 'DD.MM.YYYY')
              WHERE NummerFeld = :OLD.NummerFeld and DatumFeld = TO_DATE(:OLD.DatumFeld, 'DD.MM.YYYY');
              elsif DELETING then
              DELETE FROM datum_tabelle
              WHERE NummerFeld = :OLD.NummerFeld and DatumFeld = TO_DATE(:OLD.DatumFeld, 'DD.MM.YYYY');
              end if;
              end;</PRE>
              Jetzt kannst du die View komplett anstelle der Tabelle verwenden und hast ein "hart"formatiertes Datum.
              Durch anlegen eines Public Synonyms (create public synonym datum_tabelle for datum_view und der Vergabe von Select, Insert, Update und Delete Rechten nur auf die View anstatt auf die Tabelle, gestaltet sich das ganze ausserhalb des Schemas für die anderen Nutzer völlig transparent.

              Gruß Fal
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Hallo,

                vielen Dank an euch allen.... hab das Ganze dann mit der view gelöst...

                gruß
                christop

                Comment

                Working...
                X