Oracle-Problem mit SYSDATE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Oracle-Problem mit SYSDATE

    Hallo zusammen.

    Ich wollte eine DB anlegen, Oracle stört sich aber an meiner Check-Klausel. Hab ihr eine Idee ???

    Code:
    create table bu_benutzer (
        bnr integer primary key,
        name varchar(30) not null,
        adresse varchar(100) not null,
        
        gebdat date not null
            constraint "Nur Lebende möglich..."
            check (gebdat < sysdate)
    );
    Ich hoffe, ihr habt eine Lösung. Schon mal Danke für Eure Hilfe...

    Mike

  • #2
    der check ist eigentlich OK nur dein constraint und das fehlende Komma ... Hm ... was willst du damit eingentlich ... wie wär's mit
    ...
    gebdat date not null,
    constraint gebdat_cont check (gebdat < sysdate)

    Kommentar


    • #3
      Hi asp2php.

      Also, daß das Komma fehlt ist völlig ok, da es sich hierbei um einen Row-Contraint handelt, sich also auf die angegebene Zeile bezieht. Diese wird mit dem Komma beendet.

      Aber wo ist sonst ein Untersied zu meiner Lösung ???

      Kommentar


      • #4
        Hast Du 'ne Leseschwäche ?!

        [color=red]"Nur Lebende möglich..."[/color]
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Die Fehlermeldung aus Tora heraus lautet:

          Code:
          ORA-02436: date or system variable wrongly specified in CHECK constraint
          
          create table bu_benutzer ( 
              bnr integer primary key, 
              name varchar(30) not null, 
              adresse varchar(100) not null, 
              
              gebdat date not null 
                  constraint "Nur Lebende möglich..."
                  check (gebdat < <ERROR>sysdate) 
          )
          Muß dann also wirklich mit dem sysdate zu tun haben, oder ?
          Zuletzt geändert von ; 13.08.2004, 17:31.

          Kommentar


          • #6
            @ goth:

            Hast Du eine Lösung oder was willst Du mir sagen ?

            Kommentar


            • #7
              create table bu_benutzer (
              bnr integer primary key,
              name varchar(30) not null,
              adresse varchar(100) not null,

              gebdat date not null
              constraint "Nur Lebende möglich..."
              check (gebdat < <ERROR>sysdate)
              )
              das entspircht nicht wirklich der syntax. also " raus etc.
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Na, dann frage ich mich, weshalb auch bei folgender Variante ein Fehler gemeldet wird...

                Code:
                ORA-02436: date or system variable wrongly specified in CHECK constraint
                
                create table bu_benutzer ( 
                    bnr integer primary key, 
                    name varchar(30) not null, 
                    adresse varchar(100) not null, 
                     
                    gebdat date not null 
                        constraint meinNeuerConstraint 
                        check (gebdat < <ERROR>sysdate) 
                )
                und sogar bei folgender (Constraint-Bezeichnung weggelassen)...

                Code:
                ORA-02436: date or system variable wrongly specified in CHECK constraint
                
                create table bu_benutzer ( 
                    bnr integer primary key, 
                    name varchar(30) not null, 
                    adresse varchar(100) not null, 
                     
                    gebdat date not null 
                        check (gebdat < <ERROR>sysdate) 
                )
                Irgendwie einfach zu sagen, es würde an den " hängen... Naja. Zumal der <ERROR> ganz wo anderes angezeigt wird.

                Kommentar


                • #9
                  konvertiert beide Teile mit TO_CHAR/TO_DATE in einen gemeinsamen Format, da IMHO SYSDATE => Datum und Zeit und DATE nur Datum enthält, und deswegen die Fehlermeldung.
                  Zuletzt geändert von asp2php; 16.08.2004, 20:34.

                  Kommentar

                  Lädt...
                  X