Dokumentation | Releases | Ressourcen | Konfiguration | Alles anzeigen | Job generieren |
Dokumentation |
Wozu der Job verwendet wird.
Der Job führt ein SQL*Plus Skript aus. Der Job startet den SQL*Plus Client in einem eigenen Prozeß. Dabei behält der Job die Kontrolle über den Programmablauf. Bei der Verwendung des SQL*Plus Clients ist es möglich, zum einen eine dedizierte Fehlerauswertung zu erhalten und zum anderen die Folgesteuerung in einer Job-Kette zu erleichtern. Ebenso nützlich ist es, daß direkt in der Ausgabe des Scripts enthaltene Informationen in Parameter zu transferieren. Wie wird das auszuführende Script definiert? Das Skript kann in einer separaten Datei gespeichert sein.
Oder es kann als Wert des Parameters
Bevor der SQL*Plus Client zur Ausführung des Skriptes gestartet wird, wird das Script durch den Job modifiziert.
Zunächst wird für jeden Parameter eine "DEFINE" Direktive erzeugt.
Diese Direktiven werden in eine temporäre Datei geschrieben.
Danach werden die evtl. angegebenen Code-Fragmente (siehe
Mit der temporären Datei als Eingabedatei wird der Client gestartet. Wie können im Skript Parameter verwendet werden?Parameter des Jobs, also Job- oder Auftrags-Parameter, können im Script auf zwei Arten verwendet werden. Zum einen sind alle Parameter über Ihren Namen, mit einem vorangestelltem "&", im Script anwendbar. Sie werden als SQL*Plus Variable vom Job definiert. Der Job erzeugt für jeden Parameter eine "DEFINE"-Direktive. Zum anderen können die Namen der JobScheduler Parameter direkt im Skript verwendet werden. Diese Namen werden dann durch den aktuellen Wert des Parameters ersetzt. Wie wird auf STDOUT und STDERR zugegriffen?Der Inhalt von STDOUT als auch STDERR werden als Werte der entsprechenden Auftrags-Parameter vom Job in den Auftrag übertragen. Damit kann jeder Folge-Schritt in einer Job-Kette auf diese Information zugreifen. Wie können Ergebnisse in Folgejobs weiterverwendet werden?
Der Job ergänzt den Auftrag um entsprechende Parameter.
Zum einen sind dies statische Parameter, wie sie im Template in dem Abschnitt "return Parameter" beschrieben sind.
Zum anderen sind dies dynamische Parameter.
Der Job parsiert die Ausgaben des Skripts und extrahiert daraus, unter Verwendung eines regulären Ausdrucks, sowohl die
Namen als auch die Werte dieser Parameter.
Der reguläre Ausdruck wird mit dem Parameter
Diese Parameter sind von allen Jobs in allen Job-Schritten lesbar. Der Wert der Parameter kann auch von anderen Jobs in später auszuführenden Job-Schritten verändert werden. Wie werden Fehler erkannt und behandelt?Der Job kann Fehler erkennen, die vom SQL*Plus Client gemeldet werden. Diese haben eine Nummer, die mit der Zeichenfolge "SP2-" beginnt. Ausserdem kann der Job Fehler erkennen, die der DB-Server bei oder nach der Ausführung des Skriptes meldet. Diese beginnen mit der Zeichenfolge "ORA-" und enthalten dann ebenfalls eine Nummer. Tritt entweder ein SP2- oder ein ORA-Fehler auf, so wird der Job fehlerhaft beendet. Der Return-Code 98 wird gesetzt.
Zusätzlich ist der Fehlertext als Wert des Parameters
Es gibt über die Parameter
WHENEVER SQLERROR EXIT SQL.SQLCODE WHENEVER OSERROR EXIT FAILURE column end_date new_value BCY_DATE column period new_value PN_YEAR_PERIOD column period_prev new_value PN_YEAR_PERIOD_PREV select '0' as end_date from dual; prompt SET end_date IS &BCY_DATE; / select '0' as period from dual; prompt SET period IS &PN_YEAR_PERIOD; / select '0' as period_prev from dual; prompt SET period_prev IS &PN_YEAR_PERIOD_PREV; / prompt SET end_date IS 1; exit; |
Class | Name/ Titel | SOSSQLPlusJob Start SQL*Plus client and execute sql*plus scripts |
Auftragssteuerung | Dieser Job kann durch Aufträge oder durch Job-Starts veranlasst ablaufen. | |
Tasks | unbounded | |
Skript |
|
XML | Code zur Konfiguration des Jobs |
|
<job
title = "Start SQL*Plus client and execute sql*plus scripts" order = "yes" stop_on_error = "no" > <description> <include file = "jobs/SOSSQLPlusJob.xml" /> </description> <params> <param name = "ignore_ora_messages" value = "" /> <param name = "ignore_sp2_messages" value = "" /> <param name = "shell_command" value = "sqlplus.exe" /> <param name = "sqlplus_script_file" value = "" /> <param name = "db_url" value = "" /> <param name = "variable_parser_reg_expr" value = "^SET\\s+([^\\s]+)\\s*IS\\s+(.*)$" /> <param name = "db_user" value = "" /> <param name = "db_password" value = "" /> <param name = "Command_Line_options" value = "-S -L" /> <param name = "include_files" value = "" /> </params> <script language = "java" java_class = "sos.scheduler.db.SOSSQLPlusJobJSAdapterClass" > </script> </job> |
Releases | 1.0 | Version 1.7 |
2012-09-27 [ letzte Änderung 2012-09-27 ] | ||
kb kb sos-berlin.com | ||
Kommentar |
|
Ressourcen |
|
Documentation | Releases | Resources | Configuration | Show all | Generate Job |
Documentation |
What is the purpose of this job?
The job executes a SQL*Plus script. The job runs the SQL*Plus client in a separate process. It keeps the job in control of the program flow. How is the script defined?
The script can be saved to a separate file.
Or it can be specified as the value of the parameter
Before the SQL*Plus client is launched for execution of the script, the script is modified by the job.
First, for each parameter a "DEFINE" directive is generated.
These directives are written to a temporary file.
Thereafter, the specified code fragments (see
With the temporary file as input the client is started. How is it possible to use parameter in scripts?Parameters of the job, job or job parameters, can be used in the script in two ways. Firstly, all parameters of their name, apply with a preceding "&" in the script. They are defined as SQL*Plus variables by the job. The job created for each parameter a "DEFINE" directive. Secondly, the name of the JobScheduler parameters are used directly in the script. These names are then replaced by the current value of the parameter. How do I access stdout and stderr?The contents of STDOUT and STDERR are as values of the corresponding order parameters of the job transferred to the order. Thus, every subsequent step in a job chain has access to this information. How can results be reused in subsequent jobs?
The job transfers the appropriate parameters in the order.
The first of these are static parameters, such as those in the template docu described in the section "return parameters".
On the other hand, these are dynamic parameters.
The job analyzing the output of the script, and extracted there from using a regular expression, both
Names and the values of these parameters.
The regular expression is defined by the parameter
These parameters are readable by all jobs in all job steps. The value of the parameter can be changed by other jobs. How are errors are detected and treated?The job can detect errors that are reported by the SQL * Plus client. These have a number that starts with the string "SP2". Moreover, the job can detect errors that the DB server reported during or after the execution of the script. These begin with the string "ORA" and then also contain a number. Occurs either SP2 or an ORA-error occurs, the job is terminated abnormally. A return code of 98 is set.
Additionally, the error message is as value of the parameter
It is possible to ignore errors.
There are parameters
WHENEVER SQLERROR EXIT SQL.SQLCODE WHENEVER OSERROR EXIT FAILURE column end_date new_value BCY_DATE column period new_value PN_YEAR_PERIOD column period_prev new_value PN_YEAR_PERIOD_PREV select '0' as end_date from dual; prompt SET end_date IS &BCY_DATE; / select '0' as period from dual; prompt SET period IS &PN_YEAR_PERIOD; / select '0' as period_prev from dual; prompt SET period_prev IS &PN_YEAR_PERIOD_PREV; / prompt SET end_date IS 1; exit; |
Class | Name/ Title | SOSSQLPlusJob Start SQL*Plus client and execute sql*plus scripts |
Order Control | This job is triggered by orders or by standard job starts. | |
Tasks | unbounded | |
Script |
|
Configuration | ||||||||||||||||||||||||||||||||||||||||||
Parameters |
|
|||||||||||||||||||||||||||||||||||||||||
Return Parameters |
|
|||||||||||||||||||||||||||||||||||||||||
Parameters |
XML | Code to configurate the job |
|
<job
title = "Start SQL*Plus client and execute sql*plus scripts" order = "yes" stop_on_error = "no" > <description> <include file = "jobs/SOSSQLPlusJob.xml" /> </description> <params> <param name = "ignore_ora_messages" value = "" /> <param name = "ignore_sp2_messages" value = "" /> <param name = "shell_command" value = "sqlplus.exe" /> <param name = "sqlplus_script_file" value = "" /> <param name = "db_url" value = "" /> <param name = "variable_parser_reg_expr" value = "^SET\\s+([^\\s]+)\\s*IS\\s+(.*)$" /> <param name = "db_user" value = "" /> <param name = "db_password" value = "" /> <param name = "Command_Line_options" value = "-S -L" /> <param name = "include_files" value = "" /> </params> <script language = "java" java_class = "sos.scheduler.db.SOSSQLPlusJobJSAdapterClass" > </script> </job> |
Releases | 1.0 | Version 1.7 |
2012-09-27 [ Last Changes 2012-09-27 ] | ||
kb kb sos-berlin.com | ||
Comment |
|
Resources |
|