NAME

Prty::SqlPlus - Erzeuge Code für SQL*Plus

BASE CLASS

Prty::Object

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

-author => $author

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.112

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.