Frank Seitz
and 1 contributors

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

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.