SQL Plus

From TekiWiki
Jump to: navigation, search

SQL*Plus is the Oracle Database's supplied interactive SQL client. In later versions of Oracle, for interactive SQL queries, SQL Developer has a better GUI. However, to run scripts and run SQL as part of batch scripts, SQL Plus is your man.

Setting Up SQL Plus

SQL Plus has set of options that can be used to tailor the output. You can set these up to allow you to display things on screen or to create batch files.

Create a file with only data from your SQL

To remove all headings, feedback etc. from the output. If you have just started SQL Plus:

set pages 0
set feedback off

Writing out "LONGs"

To increase the length of a LONG column displayed in SQL Plus:

set long 55000
set arrays 1
set maxdata 60000

The difference between long and maxdata (in the above example, 60,000-55,000=5,000) gives the space for the other columns in the rest of the row

Changing the Prompt

To put the database name into the prompt in SQL Plus (prior to Oracle 10g):

column global_name new_value gname

select name || '> ' global_name from v$database;

set sqlprompt '&gname'

This is made a little simpler in 10g and higher:

set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "

Editing Your SQL

Use your favourite text editor to edit files - for instance - TextPad - by altering the SQL Plus system variable:

define _editor=C:\Progra~1\TextPa~1\Textpad.exe

Show Output from PL/SQL

To see output from PL/SQL (and see as much as you can):

/* Pre 10gR2 client */
set serveroutput on size 1000000
/* Post 10gR2 client */
set serveroutput on size unlimited

Set a Spool Filename with Database Name and Timestamp

Set a SQL*Plus substitution variable by a database query and use this as part of the name of the file:

column colFileSuffix new_value FileSuffix

select 
name||'_'||to_char(sysdate,'YYYY-MM-DD-HH24-MI-SS') colFileSuffix
from v$database;

spool ReportFile_&&FileSuffix
...commands...
spool off


Articles about SQL: