NAME
Prty::SqlPlus - Erzeuge Code für SQL*Plus
BASE CLASS
EXAMPLE
Der Aufruf
my $script = Prty::SqlPlus->script('test.sql',q|
SELECT
*
FROM
all_users
ORDER BY
username
;
|,
-before => q|
SELECT
SYSDATE AS t0
FROM
dual
;
|,
-after => q|
SELECT
SYSDATE AS t1
FROM
dual
;
|,
-author => 'Frank Seitz',
-description => q|
Dies ist ein Test-Skript.
|,
);
erzeugt
-- NAME
-- test.sql
--
-- DESCRIPTION
-- Dies ist ein Test-Skript.
--
-- AUTHOR
-- Frank Seitz
COLUMN tempdatum NEW_VALUE startdatum NOPRINT
SELECT
TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') AS tempdatum
FROM
dual;
SPOOL test.sql.&&startdatum..log
SET ECHO ON
SET FEEDBACK ON
SET VERIFY OFF
SET HEADING ON
SET TAB OFF
SET PAGESIZE 0
SET TRIMSPOOL ON
SET LINESIZE 10000
SET SERVEROUTPUT ON SIZE 10000
SET SQLBLANKLINES ON
SET TIMING ON
WHENEVER OSERROR EXIT FAILURE ROLLBACK
WHENEVER SQLERROR EXIT FAILURE ROLLBACK
ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
ALTER SESSION set NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
-- ZUSTAND ZUVOR
SELECT
SYSDATE AS t0
FROM
dual
;
-- OPERATION
SELECT
*
FROM
all_users
ORDER BY
username
;
-- ZUSTAND DANACH
SELECT
SYSDATE AS t1
FROM
dual
;
ROLLBACK;
EXIT
-- eof
METHODS
Klassenmethoden
script() - Erzeuge SQL*Plus-Skript
Synopsis
$script = $class->script($name,$sql,@opt);
Arguments
- $name
-
Name des Skripts. Der Name wird in einen Kommentar an den Anfang des Skripts gesetzt und für die Benennung der Logdatei genutzt
NAME-YYYYMMDDHHMMSS.log
wobei der Zeitanteil beim Aufruf des Skripts gesetzt wird.
- $sql
-
Der SQL*Plus-Code, der in den Rumpf des Skripts eingesetzt wird.
Options
-
Name des Skript-Autors, z.B. "Frank Seitz".
- -description => $description
-
Beschreibung des Skripts. Darf mehrzeilig sein.
- -commit => $bool (Default: 0)
-
Wenn diese Option gesetzt ist, wird COMMIT ans Ende des Skripots gesetzt, sonst ROLLBACK.
- -before => $sql
-
SQL*Plus-Code, der vor $sql ausgeführt wird.
- -beforeAndAfter => $sql
-
SQL*Plus-Code, der vor und nach $sql ausgeführt wird.
- -after => $sql
-
SQL*Plus-Code, der nach $sql ausgeführt wird.
VERSION
1.121
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2017 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.