Zum Inhalt springen

Kalender für PL/SQL


metleck

Empfohlene Beiträge

Hey!

So ich nutze Oracle 10g und PL/SQL.

So nun die Idee:

Ein User soll ein Startdatum des Jahres oder des Monats in ein Feld eingeben können z.B. 01.01.2007 und dann auf "erstellen" klicken. Dann soll der ganze Monat oder das ganze Jahr in der Tabelle angelegt werden.

Zu dem Datum soll dann in einer anderen Spalte auch noch der Wochentag angezeigt werden.

Kennt jemand sowas? Oder hat nen Link?

Vielen Dank!

Link zu diesem Kommentar
Auf anderen Seiten teilen

willst du jetzt eine fertige Funktion oder willst du hilfestellung das selber zu machen??

Es ist ziemlich leicht... Es gibt solche Funktion wie next_day (um mit dem Wochendag klar zu kommen) oder last_day (wieviele Tage hat ein Monat) und weitere....

Damit kann man sich das in sehr kurzer Zeit in pl/sql zusammen schreiben, sodas man in seinem Programm nur noch diese pl/sql funktion aufrufen muss....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey!

Also mir wäre beides recht wobei das schon fertige besser wäre.Ich komm einfach nicht weiter!

Ich hab das hier mal versucht:

WHILE (IN_MONATNEU < '31.01.2007') LOOP

IN_MONATNEU:=IN_MONATNEU+1;

INSERT INTO T_LOTTO_DATEN (ZIEHUNGSDATUM)

VALUES (IN_MONATNEU);

EXIT WHEN IN_MONATNEU = '31.01.2007';

END LOOP;

Aber das Problem ist ja das ich so eine Schleife für jeden Monat schreiben müsste. Würde ich das Enddatum auf 31.12.2007 setzen, würde es wahrscheinlich garnicht gehen.

Ich guck mir die beiden Befehle nochmal an die du grad gepostet hast, vielleicht gibts ja sowas fertig?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

eine Schleife die 12 mal durchläuft (anzahl der Monate) und im eingegebenen Monat startet. Also wenn ein User 01.07.2007 eingibt läuft diese Schleife von 7-12.

Darin eine innere Schleife die von 1 bis last_day(01."Monat der äußeren Schleife".2007).

In dieser inneren Schleife kannst du nun für jeden Tag einen Insert in deine Tabelle machen, mit dem Zaehler der inneren Schleife als Tag und mit dem Zaehler der äußeren Schleife als Monat.

Fertig.

Damit kann ein beliebigies datum eingegeben werden und es wird für jeden Tag bis zum Jahresende ein tag in die Tabelle geschrieben.

Das ganze nun als code und nicht verbal und fertig....???

Link zu diesem Kommentar
Auf anderen Seiten teilen

NEUER_MO DATE := IN_MONATNEU;

Begin

...

<input name="IN_MONATNEU" type="text" value="'||IN_MONATNEU||'" size="30" maxlength="30">.

..

IF (B6 = 'Speichern') THEN

WHILE (TO_CHAR(IN_MONATNEU) <= TO_CHAR(LAST_DAY(IN_MONATNEU))) LOOP

INSERT INTO T_LOTTO_DATEN (ZIEHUNGSDATUM)

VALUES (NEUER_MO);

NEUER_MO := NEXT_DAY(NEUER_MO,'MONTAG');

NEUER_MO := NEUER_MO+1;

EXIT WHEN NEUER_MO = '31.01.2007';

END LOOP;

So das ist die Fehlermeldung:Fehler (-1841): ORA-01841: (Volles) Jahr muss zwischen -4713 und und +9999 liegen und darf nicht 0 sein

Link zu diesem Kommentar
Auf anderen Seiten teilen

okay ich habs verändert:

IF (B6 = 'Speichern') THEN

WHILE (TO_DATE(NEUER_MO)) = TO_DATE(LAST_DAY(NEUER_MO) ) LOOP

INSERT INTO T_LOTTO_DATEN (ZIEHUNGSDATUM)

VALUES (NEUER_MO);

NEUER_MO := NEXT_DAY(NEUER_MO,'');

NEUER_MO := TO_DATE(NEUER_MO+1);

END LOOP;

END IF;

Leider passiert nun garnichts

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...