1、sqlplus是什么?
sqlplus是一個交互式的,可以進行批處理查詢的工具。
每一個oracle數據庫安裝時都會安裝sqlplus。sqlplus是以命令
行方式工作的,SQL*Plus有它自己的命令集和環境。sqlplus為
用戶提供一種訪問數據庫的方式。
sqlplus能夠執行SQL、PL/SQL、SQL*Plus和操作系統命
令來提供以下功能:
--格式化、執行運算命令、存儲、以及輸出查詢的結果
--檢查數據庫里表和對象的定義
--開發和運行批處理腳本
--執行數據庫管理
--將數據庫查詢的結果輸出到文本文件、屏幕或者HTML
文件里
最后總結一下:sqlplus就是一個普通的oracle數據庫
客戶端。
2、sqlplus相關的環境變量
這些環境變量指定了sqlplus所使用的一些命令的路徑,
或者影響sqlplus的一些運行行為。
ORACLE_HOME:指定oracle軟件安裝在那個目錄下
ORACLE_SID:指定數據庫實例,SQL*Plus可選
PATH:指定可執行程序搜索路徑,windows環境還用來指定DLLs
的路徑。一般包含ORACLE_HOME/bin
TNS_ADMIN:連接遠端oracle時,指定tnsnames.ora的位置
LD_LIBRARY_PATH:在Unix和Linux系統下指定動態庫的搜索路
徑。windows環境不需要。
SQLPATH:指定要執行的SQL腳本搜索路徑
3、怎樣運行SQL*Plus?
sqlplus一般安裝在$ORACLE_HOME/bin路徑下,設置好
PATH后可以在命令行直接執行sqlplus:
以下命令的符號約定:
"$"表示系統命令提示符
"[]"表示可選項
"|"表示左右兩邊的選項并列可選
"{}"里面的可選項只能出現一個,不能共存
$ sqlplus [ [options] [logon] [start] ]
其中options有以下語法:
-H[ELP] | -V[ERSION] | ... | [-S[ILENT]]
顯示幫助、版本等信息
其中logon有以下語法:
{username[/password][@connect_indentifier] | /}
[AS {SYSOPER | SYSDBA | SYSASM}] | /nolog
指定登錄數據庫的用戶名、密碼以及系統特權,或者(/nolog)
不連接數據庫只啟動sqlplus,或者只跟(/)使用操作系統認證。
小技巧:最好不要再sqlplus后面直接跟上密碼,因為在任務管
理器或者用ps -ef|grep oracle會看到
其中start有以下語法:
@{url | file_name[.ext]} [arg ...]
指定進入sqlplus后立即執行的一些腳本
4、sqlplus可以執行的命令類型
有三種類型的命令sqlplus可以執行:
SQL命令:通過數據庫工作
PL/SQL塊:通過數據庫工作
SQL*Plus命令:格式話查詢結果、設置可選項、編輯存儲SQL命令
和PL/SQL塊
5、sqlplus的SQL緩沖區
SQL緩沖區存儲最近一次執行的SQL命令或者PL/SQL塊。
可以:
執行LIST命令查看緩沖區中的命令。或者簡寫L
執行RUN或/命令,執行該緩沖區中的命令。
執行SAVE命令將內容保存在文件中。
注意:緩沖區不保存SQL*Plus命令!
6、安裝命令行幫助
命令行幫助一般在oracle數據庫安裝時會被安裝。如果
沒有安裝,DBA可以執行一些腳本來安裝。
第一步:以SYSTEM用戶登錄進SQL*Plus
第二步:執行hlpbld.sql和helpus.sql
SQL> @$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql
卸載命令行幫助:
SQL> @$ORACLE_HOME/sqlplus/admin/help/helpdrop.sql
7、退出SQL*Plus命令
輸入EXIT或QUIT,或者Unix下Ctrl+D,或者windows下
Ctrl+Z。
8、查看一個表的結構
SQL> describe 表_或_視圖名
SQL> desc 表_或_視圖名
SQL> describe PL/SQL的函數_或_過程名
9、怎樣結束一個SQL命令?
有三種方式結束SQL命令:
使用";"。執行
使用"/",必須另起一行開頭處。執行
使用空白行。不執行
10、在sqlplus中執行操作系統命令
使用host命令
SQL> host ls -l /tmp
也可以使用"!"(Linux)
SQL> ! ls -l /tmp
也可以使用"$"(windows)
SQL> $ dir c:
或者直接執行"!",從新開啟shell程序
SQL> !
$ ls
$ exit
SQL>
11、暫停(pause)查詢結果顯示,方便查看結果
語法如下:
SET PAU[SE] {ON | OFF | text}
如果設置set pause on,則可以設置PAESIZE來決定一次暫停顯示
多少行數據
set pause text指定每屏之間的間隔字符串
SQL> set pause '^^^^^^^^^^^^^^^^^^^^'
SQL> show pause
12、sqlplus的自動提交(autocommit)
DML命令(insert,update,delete)需要執行COMMIT命令或
執行DCL(GRANT或REVOK)命令或DDL命令(create table)后才會被記
錄到數據庫中。
通過設置AUTOCOMMIT使sqlplus自動提交。
SQL> set autocommit on
SQL> set autocommit immediate
SQL> set autocommit 10 --執行10條DML語句會自動提交
SQL> set autocommit off
SQL> show autocommit
13、在sqlplus中編輯腳本
使用START命令、@、或@@可以執行腳本。也可以在sqlplus
中編輯腳本。
SQL> edit myscripts
其中edit可以指定:
SQL> define _editor = vi
其中myscript會保存在當前目錄,并自動加上.sql后綴
14、如何在腳本中加入注釋?
有三種方式在腳本中加入注釋:
使用:REMARK命令:remark 此處是備注。也可簡寫為REM
使用:/*此處是備注*/
使用:--此處是備注
15、使用SPOOL保存查詢結果
使用SPOOL不但可以使查詢結果在屏幕上輸出,還同時將
結果保存在指定的文件中。
語法:
SPO[OL] [file_name[.ext] [CRE[ATE] | REP[LACE]] /
| APP[END]] | OFF | OUT]
16、查詢用戶有哪些表空間
SQL> select object_name, object_type from user_objects;
17、使用變量替換
SQL> select * from m_table where id=&myid;
Enter value for myid:
18、格式調整有以下參數
set echo on/off 是否顯示腳本中的需要執行的命令
set feedback on/off 是否顯示select結果之后返回多少行的提示
set linesize n 設置一行最多顯示多少字符
set termout on/off 在執行腳本時是否在屏幕上輸出結果
set heading on/off 是否顯示查詢結果的列名
set pagesize n 設置每頁的行數
set trimspool on/off 在spool到文件時是否去除輸出結果中行末尾的空白字
set trimout on/off 是否去掉屏幕上輸出結果行末尾的空白字符
set space on/off 輸出列間空格數設置
如果需要sqlplus下次啟動的時候自動調整這些格式,可以將上面的設置保存到$ORACLE_HOME/sqlplus/admin/glogin.sql文件
19、列格式
col column_name format a50 設置column_name為50個字符寬
col column_name 顯示列格式
col column_name noprint 隱藏列
CLEAR COLUMNS 將所有列的顯示屬性設為缺省值
BREAK 顯示對BREAK的設置
CLEAR BREAKS 刪除BREAK的設置
新聞熱點
疑難解答