_____________________________________________________________________________________ SQL*Plus Quick Reference: http://docs.oracle.com/cd/E11882_01/server.112/e16605/toc.htm#i772678 SQL*PlusĀ® User's Guide and Reference: http://docs.oracle.com/cd/E11882_01/server.112/e16604/toc.htm _____________________________________________________________________________________ HELD Informatik http://www.held-informatik.de/tipps-tricks/sqlplus/automatisch-ein-spoolfile-schreiben.html _____________________________________________________________________________________ CONFIGURE SPOOLFILE =================== COLUMN v_filedate NEW_VALUE _v_filedate NOPRINT SELECT TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') v_filedate FROM DUAL; COLUMN v_instance NEW_VALUE _v_instance NOPRINT SELECT SYS_CONTEXT ('USERENV','DB_NAME') v_instance FROM DUAL; COLUMN v_host NEW_VALUE _v_host NOPRINT SELECT SYS_CONTEXT ('USERENV','HOST') v_host FROM DUAL; HOST mkdir -p LOG HOST chmod 770 LOG SPOOL LOG/my_spoolfile_&_v_filedate._&_v_host._&_v_instance..log ESCAPE WILDCARD CHARACTERS ========================== select owner || '.' || table_name from dba_tables where owner = 'TEST' and table_name like 'D\_%' escape '\' order by 1; CARRIAGE RETURN IN A QUERY ========================== select 'Date: ' || to_char(sysdate,'YYYY-MM-DD') || chr(10) || 'Time: ' || to_char(sysdate,'HH24:MI:SS') || chr(10) "CR-TEST" from dual; RUN SQLPLUS VIA NET AS SYSDBA ============================= sqlplus "sys/syspw@remote-DB as sysdba" GLOBAL SQL*Plus SETTINGS ======================== $ORACLE_HOME/sqlplus/admin/glogin.sql set pages 1000 set lines 200 set time on set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> " INVOKE SQL FILES ================ @ ("at" sign) Runs the SQL*PLus statements in the specified script. The script can be called from the local file system or from a web server. @@ (double "at" sign) Runs a script. This command is similar to the @ ("at" sign) command. It is useful for running nested scripts because it looks for the specified script in the same path as the script from which it was called. ABER: Wenn ein Pfad angegeben ist, muss dieser vom initialen Script aus gesehen werden! BEISPIEL: --------- Struktur: main.sql - dir1 - dir11 - sql111.sql - sql112.sql - dir12 - sql211.sql - sql212.sql - sql1.sql - sql2.sql Aufruf: main.sql @dir1/sql1.sql @dir1/sql2.sql dir1/sql1.sql @dir1/dir11/sql111.sql -> geht (Bezug zu dir1 ist verloren) @dir11/sql112.sql -> geht nicht _____________________________________________________________________________________ _____________________________________________________________________________________