yallayalla Geschrieben 9. September 2004 Teilen Geschrieben 9. September 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 9. September 2004 Teilen Geschrieben 9. September 2004 IMHO hast du hier eine Klammer vergessen: if i_interval_2 = 'Minute' then DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1/1440)[COLOR=Red])[/COLOR]; commit; end if; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
yallayalla Geschrieben 9. September 2004 Autor Teilen Geschrieben 9. September 2004 Ho! Ne, an der liegts nicht (habe die nur vergessen, hier zu posten) DBMS_JOB.SUBMIT(l_jobno,i_procedur, datum, 'sysdate + ' || (i_interval_1/1440)); mfg yallayalla Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AxlHammer Geschrieben 9. September 2004 Teilen Geschrieben 9. September 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
yallayalla Geschrieben 10. September 2004 Autor Teilen Geschrieben 10. September 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 10. September 2004 Teilen Geschrieben 10. September 2004 Vielleicht akzeptiert er im dritten Parameter keine Kommawerte, die wahrscheinlich unweigerlich entstehen, wenn man z.B. durch 1440 teilt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AxlHammer Geschrieben 10. September 2004 Teilen Geschrieben 10. September 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
yallayalla Geschrieben 10. September 2004 Autor Teilen Geschrieben 10. September 2004 Hi Axl! Dein Tip war es, jetzt gehts! Vielen Dank! mfg yallayalla Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.