Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kalender für PL/SQL

Empfohlene Antworten

Veröffentlicht

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!

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....

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?!

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....???

ja genau das

Irgendwas mach ich falsch... der hängt sich immer auf und ballert den tablespace voll

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.