NAME
Quiq::SqlPlus - Erzeuge Code für SQL*Plus
BASE CLASS
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
-
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.220
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.