SQLPLUS 命令


定制:sql提示符信息

image

1、顯示SQLPLUS幫助,命令如下:HELP INDEX

 @             COPY         PAUSE                    SHUTDOWN
 @@            DEFINE       PRINT                    SPOOL
  /             DEL          PROMPT                   SQLPLUS
 ACCEPT        DESCRIBE     QUIT                     START
 APPEND        DISCONNECT   RECOVER                  STARTUP
  ARCHIVE LOG   EDIT         REMARK                   STORE
  ATTRIBUTE     EXECUTE      REPFOOTER                TIMING
 BREAK         EXIT         REPHEADER                TTITLE
 BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE
  CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE
  CLEAR         HOST         RUN                      WHENEVER OSERROR
  COLUMN        INPUT        SAVE                     WHENEVER SQLERROR
  COMPUTE       LIST         SET
  CONNECT       PASSWORD     SHOW

2、查看相關命令介紹以及語法,命令如下:HELP start

3、@等於start命令,運行sql腳本文件,可以調用當前目錄下或指定路徑的文件


  

 SQL>start    file_path/file_name
    SQL>@ file_path/file_name
    可以將多條sql語句保存在一個文本文件中,這樣當要執行這個文件中的所有的sql語句時,用上面的任一命令即可

4、@@ { url| file_name[.ext] } [arg ...] 


執行位於指定腳本中的SQL*Plus語句。這個命令和@(“at”符號)命令功能差不多。在執行嵌套的命令文件時它很有用,因為它會在與調用它的命令文件相同的路徑或url中查找指定的命令文件。

5、重新運行上一次運行的sql語句

   SQL>/


6、編寫交互式命令accept

SYS@orcl> accept a prompt 'Please enter values:'
 Please enter values:40
 SYS@orcl> select * from scott.dept where deptno=&a;
 old   1: select * from scott.dept where deptno=&a
 new   1: select * from scott.dept where deptno=40

    DEPTNO DNAME          LOC
---------- -------------- -------------
        40 OPERATIONS     BOSTON


7、a[ppend]  將指定的文本加到sql buffer的當前行后面   

SYS@orcl> del
 SYS@orcl> list;
 SP2-0223: No lines in SQL buffer.
 SYS@orcl> append select count(*) from scott.emp;
SYS@orcl> list;
   1* select count(*) from scott.emp
SYS@orcl> /

  COUNT(*)
----------
        14


8、啟動或停止自動歸檔聯機重做日志,手工(顯示地)歸檔指定的重做日志,或者顯示重做日志文件的信息

ARCHIVE LOG {LIST|STOP}|{START|NEXT|ALL|integer}[TO destination]

SYS@orcl> archive log list;
 Database log mode              No Archive Mode
 Automatic archival             Disabled
 Archive destination            USE_DB_RECOVERY_FILE_DEST
 Oldest online log sequence     5
 Current log sequence           7


9、屏蔽掉一個列中顯示的相同的值    BREAK ON break_column


  

SYS@orcl> break on deptno
   SYS@orcl> select deptno,ename,sal from scott.emp;

  顯示對BREAK的設置
  SQL> break

  刪除BREAK的設置
  SQL> clear breaks

10、BTI[TLE] [printspec [text|variable] ...]|[ON|OFF] 設置格式化頁腳

在每個報表頁的底部放置一個標題並對其格式化,或者列出當前BTITLE定義。使用以下子句之一替換printspec。
COL n
 LE[FT]
 BOLD
 S[KIP] [n]
 CE[NTER]
 FORMAT text
 TAB n
 R[IGHT]

SYS@orcl> btitle col 5 deptno
 SYS@orcl> select deptno,ename,sal from scott.emp;
 SYS@orcl> btitle off


11、C[HANGE] sepchar old [sepchar [new [sepchar]]]

更改在SQL緩沖區當前行中第一次出現的指定文本。可使用任何非文字數字字符(例如“/”或“!”)作為sepchar。CHANGE和第一個sepchar之間的空格可省略。
修改sql buffer中的當前行中,第一個出現的字符串  C[HANGE] /old_value/new_value
SYS@orcl> change /scott/dd
   1* select * from dd.dept
從行中刪除文本
SYS@orcl> change /dd.
   1* select * from dept

image

12、重置當前值 CL[EAR] option ...

option 可以是:

     BRE[AKS]
      BUFF[ER]
      SCR[EEN]

從SQL緩沖區刪除所有行
SYS@orcl> list
   1* select * from dept
 SYS@orcl> clear buffer

清屏
SYS@orcl> clear screen

imageimage


13、COL命令:格式化列的顯示形式


    1). 改變缺省的列標題


 

      COLUMN column_name HEADING column_heading

        SYS@orcl> select * from scott.dept;

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

SYS@orcl> col loc heading location
 SYS@orcl> select * from scott.dept;

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

   2). 將列名ENAME改為新列名EMPLOYEE NAME並將新列名放在兩行上


   

    如:COLUMN ENAME HEADING ’Employee|Name’
      SYS@orcl> column dname heading 'a|name'
       SYS@orcl> select * from scott.dept;

           a
     DEPTNO name           location
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES          CHICAGO
         40 OPERATIONS     BOSTON

    3). 改變列的顯示長度


  

     如:col 列名 format a40

    4). 設置列標題的對齊方式 JUS[TIFY] {L[EFT]|C[ENTRE]|R[IGHT]}

       如:col 列名 justify center
       SYS@orcl> column dname justify right
       SYS@orcl> select * from scott.dept;                        a
     DEPTNO           name location
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES          CHICAGO

   5). 不讓一個列顯示在屏幕上 NOPRI[NT]|PRI[NT]

       如:col 列名 noprint

       SYS@orcl> column deptno noprint
       SYS@orcl> select * from scott.dept;

             a
           name location
-------------- -------------
ACCOUNTING     NEW YORK
 RESEARCH       DALLAS
 SALES          CHICAGO


       

    6). 格式化NUMBER類型列的顯示(9999.99,999 999.0,$999 999.00, 0000.00,aXX,yyyy-mm-dd hh24:mi:ss)


       如:COLUMN 列名 FORMAT $99,990

    7). 顯示列值時,如果列值為NULL值,用text值代替NULL值

       如:COL 列名 NUL[L] text

SYS@orcl> create table test (id number,name char(3));

Table created.

SYS@orcl> insert into test(id) values(1);

1 row created.

SYS@orcl> commit;

Commit complete.

SYS@orcl> col name null wl
SYS@orcl> select  *from test;

        ID NAM
---------- ---
         1 wl


   8). 將所有列的顯示屬性設為缺省值


        SQL> CLEAR COLUMNS

14、如果已經使用了break命令將報告的行分為了集,可以對每個子集執行計算。compute


SYS@orcl> break on department_id
SYS@orcl> compute sum of salary on department_id
SYS@orcl> select department_id,salary from hr.emp_details_view;

15、連接到數據庫connect


SYS@orcl> connect system/oracle

16、定義用戶變量 DEFINE


SYSTEM@orcl> define a=40
SYSTEM@orcl> select * from scott.dept where deptno=&a;
old   1: select * from scott.dept where deptno=&a
new   1: select * from scott.dept where deptno=40

刪除變量
SYSTEM@orcl> undefine a


17、刪除當前行


    del
    del n
    del m n

SYSTEM@orcl> select *from scott.dept;
SYSTEM@orcl> list
   1* select *from scott.dept
SYSTEM@orcl> input select * from scott.emp;
SYSTEM@orcl> list
   1  select *from scott.dept
   2* select * from scott.emp
SYSTEM@orcl> del 1
SYSTEM@orcl> list
   1* select * from scott.emp

18、顯示一個表的結構  DESCRIBE


    SQL> desc table_name

19、斷開連接 disconnect

SYSTEM@orcl> DISCONNECT

20、對當前的輸入進行編輯


    SQL>edit

21、執行存儲過程 EXECUTE

image


22、退出sqlplus使用EXIT



23、將文件的sql語句導入到sql buffer中 get file_name


SYS@orcl> get afiedt.buf

24、不退出sql*plus,在sql*plus中執行一個操作系統命令:


    HOST

25、在sql buffer的當前行下面加一行或多行   i[nput]

SYS@orcl> list
   1* select * from scott.emp
SYS@orcl> input select *from dual;
SYS@orcl> list
   1  select * from scott.emp
   2* select *from dual

26、顯示sql buffer中的sql語句,list n顯示sql buffer中的第n行,並使第n行成為當前行


    l[ist][n]

27、將執行的過程暫停,等待用戶響應后繼續執行


    PAUSE [text]
SYS@orcl> pause abc
abc 
     輸入回車
SYS@orcl>

28、顯示綁定變量 print

SYS@orcl> variable aa number
SYS@orcl> begin
   2  :aa:=3;
   3  end;
   4  /

PL/SQL procedure successfully completed.

SYS@orcl> print aa

        AA
----------
          3

29、將指定的信息或一個空行輸出到屏幕上


    PROMPT [text]

SYS@orcl> prompt wl
wl

30、退出quit



31、再次執行剛才已經執行過的sql語句


    run
    /

32、將sql buffer中的sql語句保存到一個文件中


    save file_name

33、關閉數據庫  SHUTDOWN



34、將顯示的內容輸出到指定文件


    SQL> SPOOL file_name
    在屏幕上的所有內容都包含在該文件中,包括你輸入的sql語句。

   關閉spool輸出
    SQL> SPOOL OFF
    只有關閉spool輸出,才會在輸出文件中看到輸出的內容。

35、開啟數據庫   STARTUP


36、在sql*plus中,切換到操作系統命令提示符下,運行操作系統命令后,可以再次切換回sql*plus:


    !

37、設置每個報表的頂部標題


    ttitle

SYS@orcl> ttitle off

38、顯示sql*plus系統變量的值或sql*plus環境變量的值


   1).顯示當前環境變量的值:


      Show all

   2).顯示初始化參數的值:


      show PARAMETERS [parameter_name]

   3).顯示數據庫的版本:


      show REL[EASE]

   4).顯示SGA的大小


      show SGA

   5).顯示當前的用戶名


      show user

39、Set命令,通過SET變量,可以為SQL*PLUS建立一個特殊的環境。



arraysize

從數據庫一次獲取的行數,默認值20,最大值5000,值越大,內存需要越多,可以提高查詢的有效性。當超過1000時,效果不大。


autocommit

off值,禁止自動提交,需要手工提交修改,此值為默認值,on值,執行SQL命令提交修改,immediate和on相同

SYS@orcl> show autocommit
SYS@orcl> set autocommit on


linesize

一行顯示的字符數,默認值是80

例:
SET LIN[ESIZE] {80|n}
如果一行的輸出內容大於設置的一行可容納的字符數,則折行顯示

feedback

是否顯示SQL語句查詢或修改的行數,即顯示查詢返回的記錄數,on為開,off為關

SET FEED[BACK] {6|n|ON|OFF}
默認只有結果大於6行時才顯示結果的行數。如果set feedback 1 ,則不管查詢到多少行都返回。當為off 時,一律不顯示查詢的行數

例子:
show feedback
select * from scott.dept;
set feedback off
select * from scott.dept;

serveroutput

存儲過程是否顯示輸出,off為禁止,on顯示輸出

例子:
show serveroutput

SYS@orcl> begin
dbms_output.put_line('a');
end;
/
a

SYS@orcl> set serveroutput off

pagesize

設置一頁有多少行數,如果設為0,則所有的輸出內容為一頁並且不顯示列標題

例:
SET PAGES[IZE] {24|n}
     

trimout

每行尾部是否允許帶空格,on 去除重定向(spool)輸出每行尾部的空格,off 允許顯示尾部的空格

SYS@orcl> show trimout
SYS@orcl> select * from scott.dept;
SYS@orcl> set trimout off
SYS@orcl> select * from scott.dept;


heading

報表中列標題是否打印,即是否顯示每行的列名,on報表中打印列標題,off禁止打印列標題

SYS@orcl> show heading
SYS@orcl> select * from scott.dept;

SYS@orcl> set  heading off
SYS@orcl> select * from scott.dept;


verify


是否顯示替代變量被替代前后的語句,on顯示(默認值),off禁止列清單

SYS@orcl> select * from scott.dept where deptno=&a;
Enter value for a: 40
old   1: select * from scott.dept where deptno=&a
new   1: select * from scott.dept where deptno=40

        40 OPERATIONS     BOSTON
SYS@orcl> set verify off
SYS@orcl> select * from scott.dept where deptno=&a;
Enter value for a: 40

        40 OPERATIONS     BOSTON

echo


是否重復顯示所要執行的SQL語句,指start命令是否列出文件中的每行命令,on列出命令,off禁止列清單

SET ECHO {ON|OFF}

SYS@orcl> show echo
echo OFF
SYS@orcl> @/home/oracle/a.sql

        10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES          CHICAGO
         40 OPERATIONS     BOSTON
SYS@orcl> set echo on
SYS@orcl> @/home/oracle/a.sql
SYS@orcl> select * from scott.dept;

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

time


顯示日期,on顯示當前時間,off禁止顯示

例:
顯示時間
set time on|off

timing


顯示執行時間,on顯示sql命令或pl/sql塊的運行時間,off禁止

例:
set TIMING ON

wrap


是否截斷數據項,off截斷數據項,on允許數據項換到下一行,當輸出的行的長度大於設置的行的長度時(用set linesize n命令設置),當set wrap on時,輸出行的多於的字符會另起一行顯示,否則,會將輸出行的多於字符切除,不予顯示。

例:
SET WRA[P] ON

sqlprompt


設置sqlplus的命令提示符

例:
set sqlprompt "SQL> "
set sqlprompt "SQL*plus>>"


newpage


每一頁的頭和頂部標題之間要打印的空行數,0表示頁之間換行符
設置頁與頁之間的分隔
       SQL> SET NEWP[AGE] {1|n|NONE}
       當set newpage n 時,會在頁和頁之間隔着n個空行。
       當set newpage none 時,會在頁和頁之間沒有任何間隔


showmode


在執行set命令時,是否列出新值和老值

sqlcase {mixed(默認值)|lower|upper} 
在命令執行前 將sql命令和pl/sql塊的大小寫進行轉換

numformat 數值格式 


設置顯示數值的缺省格式
   
SYS@orcl> set numformat 99,999.00


numwidth {10(默認值)|n}


顯示數值設置缺省寬度

underline {-(默認值)|c|off|on(默認值)} 


列標題是否加下划線

SYS@orcl> show underline
underline "-" (hex 2d)
SYS@orcl> select * from scott.dept;
   2 
SYS@orcl>
SYS@orcl> select * from scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
      10.00 ACCOUNTING     NEW YORK
      20.00 RESEARCH       DALLAS
      30.00 SALES          CHICAGO
      40.00 OPERATIONS     BOSTON
SYS@orcl> set underline off
SYS@orcl> select * from scott.dept;

    DEPTNO DNAME          LOC
      10.00 ACCOUNTING     NEW YORK
      20.00 RESEARCH       DALLAS
      30.00 SALES          CHICAGO
      40.00 OPERATIONS     BOSTON

tab {off|on(默認值)} 


輸出中如何格式化空白空間,on用tab字符,off用空格

sqlnumber {off|on(默認值)}
當執行sql或pl/sql時,設置第二行和后面行的提示,on提示行號,off提示設置為sqlprompt的值

define


on掃描替換變量的命令及用他們的值代替
off不掃描替換變量的命令,不用他們的值代替

scan {off|on(默認值)}


是否對存在的替換變量和值掃描,off禁止替換變量和值的處理,on允許處理

space {1(默認值)|n} 


設置輸出列之間空格的數目,最大值為10

pause {off(默認值)|on}

顯示報表時,控制滾動,設置暫停,會使屏幕顯示停止,等待按下ENTER鍵,再顯示下一頁

例:
set pause on


sqlterminator

sql命令結束的字符,off不識別終止符,用空行結束sql命令,on終止符為分號

SYS@orcl> show sqlterminator
 sqlterminator ";" (hex 3b)
 SYS@orcl> set sqlterminator ":"
 SYS@orcl> select * from scott.dept:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM