profilo di Sqlplus

Per avere lo “storico” o log delle operazioni eseguite sul database, ecco un metodo semplice per creare dei log (o spool) automatici.

Il file di log avrà un formato del tipo:

istanza + data + ora

Per utilizzare questo metodo basterà copiare lo script nella directory ove viene avviato Sqlplus: alla sua partenza Sqlplus verificherà che esista il file login.sql e lo eseguirà automaticamente.

 

-- login.sql
--
-- 12/07/2006 mauro - automatic spool with timestamp

-- For backward compatibility
SET PAGESIZE 9999
SET SQLPLUSCOMPATIBILITY 8.1.7
set serveroutput on size 1000000 format wrapped
SET TIMI ON
set long 20000
SET ECHO ON
SET FEEDBACK ON
SET LINES 400
SET TERMOUT ON
SET VERIFY OFF
SET TRIMSPOOL ON
-- set numformat 999,999,999,999,999




-- Used for the SHOW ERRORS command
 COLUMN LINE/COL FORMAT A8
 COLUMN ERROR FORMAT A65 WORD_WRAPPED

-- define _editor=vi
-- define _editor=UEDIT32
define _editor=notepad

COL mysysdate new_value ladata
COL myinstance new_value laistanza
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD__HH24_MI_SS') mysysdate FROM DUAL;
SELECT ORA_DATABASE_NAME myinstance FROM DUAL;

SPOOL &&laistanza-&&ladata..log

SELECT 'CONNESSO A: '||
(SELECT ORA_DATABASE_NAME MRIGA FROM DUAL)||' >> COME: '||
(select sys_context('userenv','instance_name') MRIGA from dual) FROM DUAL;

column prompter new_value m_prompt
 
 select
 ORA_DATABASE_NAME || '>' prompter
 from duAL;

set sqlprompt '&m_prompt'
--undefine m_prompt

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';