sql*plus入門

pingley發表於2012-02-06
sql*plus入門
oracle sql*plus工具是用於連線管理資料庫的實用工具,提供了簡潔強大的命令列介面
在各個發行版本都帶有該工具。用於執行資料庫管理,編輯執行sql,pl/sql命令。
注:oracle sql*plus執行的部分是本地命令(local commands),也是就是sql*plus自帶的命令,
部分是伺服器端命令(server-executed commands).

使用sql*plus連線資料庫:
sqlplus scott/TIGER@localhost:1521/ORACL
使用easy connect方法,連線遠端資料庫。可以不需要配置tnsnames.ora檔案
要連線遠端資料庫只需要把localhost換成遠端主機名。
tnsnames.ora可以使用netmgr配置或者直接修改tnsnames.ora檔案。

設定預設使用的資料庫:
$ ORACLE_SID=orcl
$ export ORACLE_SID
這樣可以不需要指定登陸的資料庫名
$ sqlplus username/password
注意:這時候密碼是可見
當需要連線到非預設的資料庫的時候,指定tnsnames.ora檔案中的服務名
$ sqlplus username@connect_identifier

可以使用作業系統認證的方式以sysdba登陸系統:
sqlplus / as sysdba
某種操作,比如startup,shutdown 必須是以sysdba or sysoper驗證的使用者

connect命令:
進入sql命令列介面以後,也可以切換到其他使用者,其他資料庫
SQL> connect newuser/newuser_passwd
SQL> connect salapati/sammyy1@orcla
connect sys/sammy1@prod1 as sysdba
connect / as sysdba
connect username/password as sysdba
connect / as sysoper
connect username/password as sysoper
這時確保tnsnames.ora已經配置關於要連線的資料庫的連線資訊

nolog命令:
可以使用/nolog先進入sql*plus命令列介面,而不連線到資料庫
$ sqlplus /nolog
這時主要是為了編輯sql指令碼,需要連線到資料庫的時候可以使用connect命令

-用於連線字元拼接:
SQL> select 200 - -
> 100 from dual;
200-100
----------
100
其中一個用作減號

exit,quit用於退出資料庫系統:
注意:這時候sql*plus會自動的執行commit;
如果你得事物不需要提交請在退出前rollback;

show screen用於清理螢幕
SQL> clear screen
在linux下也可以使用:
SQL> !clear

edit命令:
在提示符下輸入edit預設使用的vi,windows下是notepad,如果要改變預設的sql語句編輯器
可以再提示符下輸入define_editor=notpad(你想要使用的編輯器名)。
出現在文字編輯器中的sql語句是最新執行的,預設檔名為afiedt.buf
如果想要保持你編輯的sql語句,可以在edit後面跟上你要儲存的檔名(filename)。
執行sql語句,只需要在提示符下鍵入/然後按enter鍵,或者使用@filename然後按enter鍵。

set命令:
set命令用於設定sql*plus會話的環境變數.使用help index命令顯示出幫助主題
使用help [topic]詳細瞭解該命令。
SQL> help index
Enter Help [topic] for help.

 @             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                      XQUERY
 CONNECT       PASSWORD     SHOW

array[size]:設定一次從資料庫中獲取的行數,把該值設定的大寫可以提高查詢的效率,但是同時也需要
更多的記憶體。
SQL> show array
arraysize 15
SQL> set array 30
autocommit[on|off]:設定是否自動提交事務。
SQL> show autocommit;
autocommit OFF
echo[on|off]:每一個命令都將在螢幕輸出前顯示。
SQL> show echo
echo OFF
SQL> set echo on
linesize[80|n]:控制每行顯示的字元個數。
SQL> show linesize
linesize 80
SQL> set linesize 120
time[on|off]:顯示系統時間。
SQL> show time
time OFF
SQL> set time on
12:34:58 SQL>
sqlprompt[sql>|text]:sql*plus會話的提示符。
SQL> show sqlprompt
sqlprompt "SQL> "
SQL> set sqlprompt "dba@oracle>"
dba@oracle>
space[1|n]:設定列輸出之間的空格,最大值是10.
SQL> show space
space 1
SQL> select * from V$sgainfo;

NAME                                  BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size                      1336120 No
Redo Buffers                        6373376 No
Buffer Cache Size                 159383552 Yes
Shared Pool Size                   96468992 Yes
Large Pool Size                    29360128 Yes
Java Pool Size                     12582912 Yes
Streams Pool Size                         0 Yes
Shared IO Pool Size                       0 Yes
Granule Size                        4194304 No
Maximum SGA Size                  305508352 No
Startup overhead in Shared Pool    62914560 No

NAME                                  BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available                 0
SQL> set space 0
SQL> select * from V$sgainfo;

NAME                                 BYTESRES
---------------------------------------------
Fixed SGA Size                     1336120No
Redo Buffers                       6373376No
Buffer Cache Size                159383552Yes
Shared Pool Size                  96468992Yes
Large Pool Size                   29360128Yes
Java Pool Size                    12582912Yes
Streams Pool Size                        0Yes
Shared IO Pool Size                      0Yes
Granule Size                       4194304No
Maximum SGA Size                 305508352No
Startup overhead in Shared Pool   62914560No

NAME                                 BYTESRES
---------------------------------------------
Free SGA Memory Available                0
請注意查詢輸出的差異
pagesize[24|n]:設定每頁的行數。
SQL> show pagesize
pagesize 14
SQL> select * from V$sgainfo;
1//編號是自己手動新增的
2NAME                                 BYTESRES
3---------------------------------------------
4Fixed SGA Size                     1336120No
5Redo Buffers                       6373376No
6Buffer Cache Size                159383552Yes
7Shared Pool Size                  96468992Yes
8Large Pool Size                   29360128Yes
9Java Pool Size                    12582912Yes
10Streams Pool Size                        0Yes
11Shared IO Pool Size                      0Yes
12Granule Size                       4194304No
13Maximum SGA Size                 305508352No
14Startup overhead in Shared Pool   62914560No

NAME                                 BYTESRES
---------------------------------------------
Free SGA Memory Available                0
12 rows selected.
其中每一頁最大14行.
feedback[on|off]:設定是否範圍“x row selected”。
SQL> show feedback
FEEDBACK ON for 6 or more rows
SQL> set feedback off
SQL> show feedback
feedback OFF
verify[on|off]:設定SQL文字是否顯示當,變數替換以後。
SQL> show verify
verify ON
SQL> create table hr.test(col number(4));
Table created.
SQL> insert into hr.test values(&col);
Enter value for col: 1000
old   1: insert into hr.test values(&col)
new   1: insert into hr.test values(1000)
1 row created.
SQL> set verify off
SQL>  insert into hr.test values(&col);
Enter value for col: 999
1 row created.
注意前後的區別。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-715714/,如需轉載,請註明出處,否則將追究法律責任。

相關文章