The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

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