Powered By Blogger

Sunday 25 March 2012

SQL * Plus Command


SQL*PLUS COMMANDS

These commands does not require statement terminator and applicable to the sessions , those will be automatically cleared when session was closed.

BREAK
This will be used to breakup the data depending on the grouping.
Syntax:
            Break or bre [on <column_name> on report]
COMPUTE

This will be used to perform group functions on the data.

Syntax:
            Compute or comp [group_function of column_name on breaking_column_name or
                                            report]

TTITLE

This will give the top title for your report. You can on or off the ttitle.

Syntax:
            Ttitle or ttit [left | center | right] title_name  skip n other_characters
           Ttitle or ttit [on or off]
BTITLE
This will give the bottom title for your report. You can on or off the btitle.

Syntax:
            Btitle or btit [left | center | right] title_name  skip n other_characters
           Btitle or btit [on or off]
Ex:
            SQL> bre on deptno skip 1 on report
SQL> comp sum of sal on deptno
SQL> comp sum of sal on report
SQL> ttitle center 'EMPLOYEE DETAILS' skip1 center '----------------'
SQL> btitle center '** THANKQ **'
SQL> select * from emp order by deptno;
Output:

                                                      EMPLOYEE DETAILS
                                                    -----------------------

      EMPNO    ENAME    JOB              MGR     HIREDATE     SAL     COMM   DEPTNO
      ---------- ---------- ---------       -------  --------------  -------- ---------- ----------
      7782        CLARK   MANAGER     7839   09-JUN-81     2450                       10
      7839        KING     PRESIDENT              17-NOV-81    5000
      7934        MILLER CLERK           7782   23-JAN-82     1300
                                                                                          ----------            **********
                                                                                            8750                 sum

      7369        SMITH   CLERK           7902   17-DEC-80          800                    20
      7876        ADAMS  CLERK           7788   23-MAY-87       1100
      7902        FORD    ANALYST       7566   03-DEC-81        3000
      7788        SCOTT  ANALYST       7566   19-APR-87        3000
      7566        JONES  MANAGER      7839   02-APR-81        2975
                                                                                           ----------            **********
                                                                                             10875                 sum

      7499       ALLEN    SALESMAN    7698   20-FEB-81       1600        300         30
      7698       BLAKE    MANAGER     7839   01-MAY-81       2850
      7654       MARTIN SALESMAN    7698   28-SEP-81       1250       1400
      7900       JAMES    CLERK           7698   03-DEC-81         950
      7844       TURNER SALESMAN    7698   08-SEP-81       1500          0
      7521       WARD    SALESMAN    7698   22-FEB-81       1250        500
                                                                                         ----------             **********
                                                                                              9400                  sum
                                                                                         ----------
      sum                                                                               29025

                                                      ** THANKQ **

CLEAR

This will clear the existing buffers or break or computations or columns formatting.

Syntax:
            Clear or cle buffer | bre | comp | col;

Ex:
            SQL> clear buffer
        Buffer cleared
            SQL> clear bre
                   Breaks cleared
            SQL> clear comp
                   Computes cleared
            SQL> clear col
                   Columns cleared

CHANGE

This will be used to replace any strings in SQL statements.

Syntax:
              Change or c/old_string/new_string

If the old_string repeats many times then new_string replaces the first string only.

Ex:
                        SQL> select * from det;
select * from det
              *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> c/det/dept
  1* select * from dept
SQL> /

      DEPTNO  DNAME            LOC
     ---------- ---------------- -----------
        10        ACCOUNTING  NEW YORK
        20        RESEARCH       ALLAS
        30        SALES              CHICAGO
        40        OPERATIONS   BOSTON

COLUMN

This will be used to increase or decrease the width of the table columns.

Syntax:
            Column or col <column_name> format <num_format|text_format>

Ex:
            SQL> col deptno format 999
            SQL> col dname format a10

SAVE

This will be used to save your current SQL statement as SQL Script file.

Syntax:
             Save or sav <file_name>.[extension] replace or rep

If you want to save the filename with existing filename the you have to use replace option.
By default it will take sql as the extension.
Ex:
            SQL> save ss
        Created file ss.sql
            SQL> save ss replace
                  Wrote file ss.sql
           
EXECUTE

This will be used to execute stored subprograms or packaged subprograms.

Syntax:
            Execute or exec <subprogram_name>

Ex:
            SQL> exec sample_proc

SPOOL

This will record the data when you spool on, upto when you say spool off. By default it will give lst as extension.

Syntax:
            Spool on | off | out | <file_name>.[Extension]

Ex:
            SQL> spool on
SQL> select * from dept;

DEPTNO DNAME            LOC
--------- --------------   ----------
    10      ACCOUNTING  NEW YORK
    20      RESEARCH       DALLAS
    30      SALES              CHICAGO
    40      OPERATIONS   BOSTON

SQL> spool off
SQL> ed on.lst

SQL> select * from dept;

DEPTNO DNAME            LOC
--------- --------------   ----------
    10      ACCOUNTING  NEW YORK
    20      RESEARCH       DALLAS
    30      SALES              CHICAGO
    40      OPERATIONS   BOSTON

SQL> spool off

LIST

This will give the current SQL statement.

Syntax:
            List or li [start_line_number] [end_line_number]

Ex:
            SQL> select
                2  *
                3  from
                4  dept;
SQL> list
               1  select
               2  *
               3  from
               4* dept
SQL> list 1
               1* select
SQL> list 3
             3* from

SQL> list 1 3
             1  select
             2  *
             3* from
           
INPUT

This will insert the new line to the current SQL statement.

Syntax:
            Input or in <string>

Ex:
            SQL> select *
            SQL> list
  1* select *
SQL> input from dept
SQL> list
  1  select *
  2* from dept         

APPEND

This will adds a new string to the existing string in the SQL statement without any space.

Syntax:
            Append or app <string>

Ex:
            SQL> select *
SQL> list
  1* select *
SQL> append  from dept
  1* select * from dept


SQL> list
  1* select * from dept

DELETE

This will delete the current SQL statement lines.

Syntax:
            Delete or del <start_line_number> [<end_line_number>]

Ex:
            SQL> select
    2  *
    3  from
    4  dept
    5  where
    6  deptno
    7  >10;
SQL> list
   1  select
   2  *
   3  from
   4  dept
   5  where
   6  deptno
   7* >10
SQL> del 1
SQL> list
   1  *
   2  from
   3  dept
   4  where
   5  deptno
   6* >10
SQL> del 2
SQL> list
   1  *
   2  dept
   3  where
   4  deptno
   5* >10
SQL> del 2 4
SQL> list
   1  *
   2* >10
SQL> del
SQL> list
   1  *

VARIABLE

This will be used to declare a variable.

Syntax:
            Variable or var <variable_name> <variable_type>

Ex:
            SQL> var  dept_name varchar(15)
            SQL> select dname into dept_name from dept where deptno = 10;

PRINT

This will be used to print the output of the variables that will be declared at SQL level.

Syntax:
            Print <variable_name>

Ex:
            SQL> print dept_name

                        DEPT_NAME
                        --------------
                        ACCOUNTING

START

This will be used to execute SQL scripts.

Syntax:
            start <filename_name>.sql

Ex:
SQL> start ss.sql
SQL> @ss.sql             -- this will execute sql script files only.

HOST

This will be used to interact with the OS level from SQL.

Syntax:
            Host [operation]

Ex:
SQL> host
SQL> host dir

SHOW

Using this, you can see several commands that use the set command and status.

Syntax:
            Show all | <set_command>

Ex:
SQL> show all
appinfo is OFF and set to "SQL*Plus"
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace OFF
blockterminator "." (hex 2e)
btitle OFF and is the first few characters of the next SELECT statement
cmdsep OFF
colsep " "
compatibility version NATIVE
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK is ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
editfile "afiedt.buf"
embedded OFF
escape OFF
FEEDBACK ON for 6 or more rows
flagger OFF
flush ON

SQL> sho verify
verify OFF

RUN

This will runs the command in the buffer.



Syntax:
Run | /

Ex:
SQL> run
SQL> /
STORE

This will save all the set command statuses in a file.

Syntax:
Store set <filename>.[extension] [create] | [replace] | [append]

Ex:
SQL> store set my_settings.scmd
Created file my_settings.scmd
SQL> store set my_settings.cmd replace
Wrote file my_settings.cmd
SQL> store set my_settings.cmd append
Appended file to my_settings.cmd

FOLD_AFTER

This will fold the columns one after the other.

Syntax:
Column <column_name> fold_after [no_of_lines]

Ex:
SQL> col deptno fold_after 1
SQL> col dname fold_after 1
SQL> col loc fold_after 1
SQL> set heading off
SQL> select * from dept;

        10
ACCOUNTING
NEW YORK

        20
RESEARCH
DALLAS
        30
SALES
CHICAGO

        40
OPERATIONS
BOSTON

FOLD_BEFORE

This will fold the columns one before the other.

Syntax:
Column <column_name> fold_before [no_of_lines]

DEFINE

This will give the list of all the variables currently defined.

Syntax:
Define [variable_name]

Ex:
SQL> define
DEFINE _DATE           = "16-MAY-07" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "oracle" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000200" (CHAR)
DEFINE _EDITOR         = "Notepad" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 –
                                            Production With the Partitioning, OLAP and Data Mining
                                             options" (CHAR)
DEFINE _O_RELEASE      = "1001000200" (CHAR)

SET COMMANDS

These commands does not require statement terminator and applicable to the sessions , those will be automatically cleared when session was closed.

LINESIZE

This will be used to set the linesize. Default linesize is 80.

Syntax:
            Set linesize <value>

Ex:
            SQL> set linesize 100

PAGESIZE

This will be used to set the pagesize. Default pagesize is 14.

Syntax:
            Set pagesize <value>

Ex:
            SQL> set pagesize 30

DESCRIBE

This will be used to see the object’s structure.

Syntax:
            Describe or desc <object_name>

Ex:
            SQL> desc dept
           
Name                                                              Null?                    Type
----------------------------------------------------------------- ---------------------
DEPTNO                                                            NOT NULL  NUMBER(2)
DNAME                                                                                 VARCHAR2(14)
LOC                                                                                      VARCHAR2(13)

PAUSE

When the displayed data contains hundreds or thousands of lines, when you select it then it will automatically scrolls and displays the last page data. To prevent this you can use this pause option. By using this it will display the data correspoinding to the pagesize with a break which will continue by hitting the return key. By default this will be off.

Syntax:
            Set pause on | off

Ex:
            SQL> set pause on

FEEDBACK

This will give the information regarding howmany rows you selected the object. By default the feedback message will be displayed, only when the object contains more than 5 rows.

Syntax:
            Set feedback <value>

Ex:
            SQL> set feedback 4
SQL> select * from dept;

 DEPTNO    DNAME         LOC
---------- -------------- -------------
        10   ACCOUNTING   NEW YORK
        20   RESEARCH        DALLAS
        30   SALES               CHICAGO
        40   OPERATIONS    BOSTON

4 rows selected.

HEADING

If you want to display data without headings, then you can achieve with this. By default heading is on.

Syntax:
            Set heading on | off

Ex:
            SQL> set heading off
SQL> select * from dept;

        10   ACCOUNTING   NEW YORK
        20   RESEARCH        DALLAS
        30   SALES               CHICAGO
        40   OPERATIONS    BOSTON

SERVEROUTPUT

This will be used to display the output of the PL/SQL programs. By default this will be off.

Syntax:
            Set serveroutput on | off

Ex:
            SQL> set serveroutput on

TIME

This will be used to display the time. By default this will be off.
Syntax:
            Set time on | off

Ex:
            SQL> set time on
19:56:33 SQL>

TIMING

This will give the time taken to execute the current SQL statement. By default this will be off.

Syntax:
            Set timing on | off

Ex:
            SQL> set timing on
SQL> select * from dept;

 DEPTNO    DNAME         LOC
---------- -------------- -------------
        10   ACCOUNTING   NEW YORK
        20   RESEARCH        DALLAS
        30   SALES               CHICAGO
        40   OPERATIONS    BOSTON

Elapsed: 00:00:00.06

SQLPROMPT

This will be used to change the SQL prompt.

Syntax:
            Set sqlprompt <prompt>


Ex:
SQL> set sqlprompt 'ORACLE>'
ORACLE>

SQLCASE

This will be used to change the case of the SQL statements. By default the case is mixed.

Syntax:
            Set sqlcase upper | mixed | lower

Ex:
SQL> set sqlcase upper

SQLTERMINATOR

This will be used to change the terminator of the SQL statements. By default the terminator is ;.

Syntax:
            Set sqlterminator <termination_character>

Ex:
SQL> set sqlterminator :
SQL> select * from dept:

DEFINE

By default if the & character finds then it will treat as bind variable and ask for the input. Suppose your want to treat it as a normal character while inserting data, then you can prevent this by using the define option. By default this will be on

Syntax:
            Set define on | off

Ex:
            SQL>insert into dept values(50,'R&D','HYD');
Enter value for d:
old   1: insert into dept values(50,'R&D','HYD')
new   1: INSERT INTO DEPT VALUES(50,'R','HYD')

            SQL> set define off
            SQL>insert into dept values(50,'R&D','HYD');               -- here it won’t ask for value

NEWPAGE

This will shows how many blank lines will be left before the report. By default it will leave one blank line.

Syntax:
            Set newpage <value>

Ex:
            SQL> set newpage 10

The zero value for newpage does not produce zero blank lines instead it switches to a special property which produces a top-of-form character (hex 13) just before the date on each page. Most modern printers respond to this by moving immediately to the top of the next page, where the priting of the report will begin.

HEADSEP

This allow you to indicate where you want to break a page title or a column heading that runs longer than one line. The default heading separator is vertical bar (|).

Syntax:
            Set headsep <separation_char>

Ex:
SQL> select * from dept;


 DEPTNO    DNAME         LOC
---------- -------------- -------------
        10   ACCOUNTING   NEW YORK
        20   RESEARCH        DALLAS
        30   SALES               CHICAGO
        40   OPERATIONS    BOSTON

SQL> set headsetp !
SQL> col dname heading 'DEPARTMENT ! NAME'
SQL> /

                 DEPARTMENT
 DEPTNO       NAME             LOC
---------- -----------------   ----------
        10   ACCOUNTING    NEW YORK
        20  RESEARCH          DALLAS
        30  SALES                 CHICAGO
        40  OPERATIONS     BOSTON
           
ECHO

When using a bind variable, the SQL statement is maintained by echo. By default this is off.

Syntax:
            Set echo on | off

VERIFY

When using a bind variable, the old and new statements will be maintained by verify. By default this is on.

Syntax:
            Set verify on | off


Ex:
            SQL> select * from dept where deptno = &dno;
Enter value for dno: 10
old   1: select * from dept where deptno = &dno
new   1: select * from dept where deptno = 10

    DEPTNO    DNAME           LOC
    ---------- ---------------- -----------
        10       ACCOUNTING  NEW YORK

SQL> set verify off
SQL> select * from dept where deptno = &dno;
Enter value for dno: 20

    DEPTNO  DNAME         LOC
    ---------- -------------  -----------
        20       RESEARCH   DALLAS

PNO

This will give displays the page numbers. By default the value would be zero.

Ex:
SQL> col hiredate new_value xtoday noprint format a1 trunc
SQL> ttitle left xtoday right 'page' sql.pno  
SQL> select * from emp where deptno = 10;

09-JUN-81                                                                                    page         1

 EMPNO   ENAME      JOB             MGR       SAL  COMM     DEPTNO
---------- ---------- --------------- --------- ----- ---------- ----------
      7782  CLARK     MANAGER     7839    2450                    10
      7839  KING       PRESIDENT               5000                    10
      7934  MILLER   CLERK           7782    1300                    10

In the above noprint tells SQLPLUS not to display this column when it prints the results of the SQL statement. Dates that have been reformatted by TO_CHAR get a default width of about 100 characters. By changing the format to a1 trunc, you minimize this effect. NEW_VALUE inserts contents of the column retrieved by the SQL statement into a variable called xtoday.

No comments: