So lösen Sie ORA-27475: "JOB" muss ein Programm oder eine Kette sein

8

Ich habe ein paar Orakel-Prozeduren:

%Vor%

und

%Vor%

und ich möchte eine Kette basierend auf diesen Prozeduren erstellen und der Kette und einigen Regeln Schritte hinzufügen:

%Vor%

Aber beim Überprüfen der Log-Tabelle sehe ich, dass der Job mit dem FEHLER-Code fehlgeschlagen ist: 27475

%Vor%

wie vorgeschlagen Ich entferne die Parameter aus der Prozedur, aber dann habe ich diese Fehler:

%Vor%     
en Lopes 21.09.2017, 13:19
quelle

3 Antworten

5

Es gibt einige Dinge, die Sie sicherstellen müssen:

  1. Es ist besser, den vollständigen Jobnamen in OWNER.JOBNAME anzugeben. Sehen Sie, wer der Eigentümer des Jobs ist

    %Vor%
  2. Wenn start_date und repeat_interval auf null gesetzt sind, wird der Job so geplant, dass er ausgeführt wird, sobald der Job aktiviert ist.

  3. Der Job wird als die Person ausgeführt, die den Job plant, Sie sollten Jobs nicht als SYS planen, wenn Sie die aktuellen Benutzerrechte verwenden möchten!

Referenzen: -

Oracle-Community

Stellen Sie Tom

    
Ravi 23.09.2017, 16:14
quelle
2

Das Problem könnte in der Kette und den Kettenschrittnamen liegen. Versuchen Sie, Großbuchstaben für alle Job-, Ketten- und Kettenschritte zu verwenden, oder schließen Sie die Namen in doppelte Anführungszeichen ein: ""

In Oracle behandelt Bezeichner die Groß- / Kleinschreibung nicht und konvertiert sie in Großbuchstaben. Daher konnte Orakel Ihren Kettennamen nicht finden. Gleiches gilt für Kettenschritte, Regeln usw.

Auch die Prozeduren "send" und "receive" erwarten Parameter (p_to_date) und diese Parameter werden bei Kettenschrittaufrufen nicht übergeben. Dies wird ein Problem verursachen. Es gibt keine direkte Möglichkeit, Kettenparameter zu übergeben. Sehen Sie sich diesen Beitrag an: community.oracle.com/message/1459336#1459336

    
BA. 23.09.2017 16:36
quelle
1

Ich denke, Sie müssen DBMS_SCHEDULER.CREATE_PROGRAM verwenden, um ein Programmobjekt zu erstellen und dann den Namen dieses Objekts an DBMS_SCHEDULER.DEFINE_CHAIN_STEP übergeben. Es sieht so aus, als ob das dritte Argument für DEFINE_CHAIN_STEP ein Programmname ist und Sie diesen Programmnamen mit einem Aufruf von CREATE_PROGRAM definieren.

Manuelle URL:

Ссылка

    
Bobby Durrett 29.09.2017 23:56
quelle