Ganymed Geschrieben 28. Januar 2008 Teilen Geschrieben 28. Januar 2008 Guten Tag zusammen, ich habe folgendes Problem oder vielmehr Phänomen, was ich mir nicht erklären kann und hoffe, ihr "Profis" habt ne Erklärung dafür oder gar einen Lösungsansatz zum eingrenzen. Folgendes Problem: Ich habe einen Oracle Job, der einmal am Wochenende läuft und dessen Resultat dann weiterverschickt werden muss. In diesem Job, erfolgt eine komplette Löschung einer Tabelle, damit diese mit Hilfe des Jobs mit frischen Daten versorgt werden kann. Lustigerweise, wenn ich den Job über die Datenbank starten lasse Nachts um 1:00 macht er die Löschung nicht. Das Resultat sind dann quasi zweimal Daten (alte und neue) die ich nicht brauche. Setze ich den Job dann hier, wenn ich da bin, auf eine andere Zeit und harre der Dinge, dass er startet, funktioniert die Löschung einwandfrei. :confused: Es ist doch eigentlich nichts anderes, als Nachts um Eins, oder doch? Was könnte die Löschung verhindern, bzw. wie kann ich eventuell der Sache auf den Grund gehen? Grüße Ganymed Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 28. Januar 2008 Teilen Geschrieben 28. Januar 2008 hast du nach dem delete eine abfrage des errorcodes eingebaut? machst du die abfragen immer mit dem gleichen user? Wird ein Backup von dieser DB gemacht? Ist vielleicht ein anderes Skript da, der die alten Daten einfügt? Ich würde mir an deiner Stelle die serverlogs anschauen und mir alle tätigkeiten auf dieser Tabelle herausfiltern Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ganymed Geschrieben 28. Januar 2008 Autor Teilen Geschrieben 28. Januar 2008 Der schmeisst keinen Errorcode. Der läuft einfach weiter. Ich mache zwar ein Commit nach der Löschung, aber irgendwie sieht das so aus, als würde das völlig ignoriert... :confused: Nein, von der DB wird kein Backup gemacht und das Skript ist das einizige, was auf diese Tabelle zugrieft, denn das Konstrukt wird für nur diesen einen (wenn auch unschönen) Grund benutzt. Die Abfragen laufen immer von Oracle selbst aus. Also ohne irgend einen angemeldeten Benutzer. Der Benutzer ist DBO. Auf die Serverlogs kann ich leider nicht gucken (bin nur ein armer AE ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 28. Januar 2008 Teilen Geschrieben 28. Januar 2008 kannst du die relevanten zeilen von dem JOB (bzw. was in job_action aufgerufen wird) hier posten? mich würde interessieren, ob hier mit DELETE FROM oder mit TRUNCATE TABLE gearbeitet wird. mich würde auch interessieren, ob DBMS_SCHEDULER oder noch das alte (pre-10g) DBMS_JOB arbeitet. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ganymed Geschrieben 28. Januar 2008 Autor Teilen Geschrieben 28. Januar 2008 So, habe den Fehler gefunden... Irgendein Yogi hatte das gleiche nochmal angelegt und das hatte zu den Dupletten geführt. Kollegen... @Amstelchen So als Info: Es wäre ein ganz normales DELETE FROM gewesen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 28. Januar 2008 Teilen Geschrieben 28. Januar 2008 Hi, wenn Du alle Zeilen der Tabelle löschen möchtest, dann kannst auch einfach ein TRUNCATE TABLE verwenden. In PL/SQL musst es nur als dynamisches SQL einbauen: execute immediate 'TRUNCATE TABLE xyz'; Ein COMMIT danach brauchst auch nicht und "etwas" schneller sollte es auch gehen. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ganymed Geschrieben 29. Januar 2008 Autor Teilen Geschrieben 29. Januar 2008 Ich wollte aber nicht alle Zeilen löschen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 29. Januar 2008 Teilen Geschrieben 29. Januar 2008 In diesem Job, erfolgt eine komplette Löschung einer Tabelle, damit diese mit Hilfe des Jobs mit frischen Daten versorgt werden kann. Ok. Dann habe ich das Wort "komplett" wohl falsch verstanden Dim 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.