Zum Inhalt springen

DBMS_JOB Submit --> Stunden/Minuten


yallayalla

Empfohlene Beiträge

Hallo!

Folgendes Problem:

Ich moechte Jobs an die DBA übermitteln, habe dafür ein Eingabeformular, das dann Variablen füllt, die dann verarbeitet werden:

if i_interval_2 = 'Minute' then

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1/1440);

commit;

end if;

if i_interval_2 = 'Stunde' then

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1/24));

commit;

end if;

So sieht mein Code aus.

Bei den Tagen funzt es:

if i_interval_2 = 'Tag' then

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1));

commit;

Wobei i_interval_1 die Anzahl der Tage angibt.

Bei Minuten und Stunden sind die Anzahl der Minuten und Stunden ebenfalls in i_interval_1, allerdings muss ich die ja noch durch 1440 bzw. 24 teilen, um den richtigen Wert zu haben (2/24 = 1/12 --> alle 2 Stunden).

Wo liegt mein Fehler...?

Vielen Dank.

mfg

yallayalla

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Zunächst einmal ist es immer hilfreich, wenn du Datenbank und Version dazuschreibst. In diesem Fall dann wohl Oracle...

Poste doch mal den ganzen Quellcode. Ich glaube, es hängt damit zusammen, dass du als 4. Parameter ein Datum übergeben musst und keinen String. Es kann daher sein, dass bei der Konvertierung etwas nicht so läuft wie du es gerne hättest...

Versuch es doch mal so (vorausgesetzt, i_interval_1 ist nen Integer):

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, sysdate + i_interval_1 / 1440);

Gruss, Axl

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Oracle DB 8

if i_interval_2 = 'Minute' then

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate +' || (i_interval_1/1440'));

commit;

end if;

Hier kommt immer der Fehler (liegt wohl am dividieren), denn hier

if i_interval_2 = 'Tag' then

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1+1));

commit;

kommt keiner, also das mit dem Interval klappt! Es scheint nur irgendwie nicht zu klappen, wenn ich Stunden/Minuten Intervalle setzen will...

mfg

yallayalla

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oh, meine Lösung von gestern kannste vergessen, hab mich mit den Datentypen vertan.

Aber ich hab einen anderen Vorschlag für Dich...

Wie wär es mit

DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || i_interval_1 || '/1440' )

Evtl. musst du i_interval_1 noch als Character konvertieren, leider schreibst du nicht über den Datentyp.

So wie du es geschrieben hast, rechnet er zuerst den Bruch i_interval_1/1440 aus und konvertiert das dann erst als String...

Gruss, Axl

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