Zum Inhalt springen

DBMS_JOB Submit --> Stunden/Minuten


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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