NAME

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

BASE CLASS

Quiq::Object

EXAMPLE

Der Aufruf

my $script = Quiq::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 NULL '~'
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.221

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2024 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.