一、使用cmd登錄:
???
??? 前提:PATH中設(shè)置%oracle_home%/bin
?
??? \admin> sqlplus
??? 輸入用戶名:sys
??? 輸入密碼:sys as sysdba(頁(yè)面中不顯示)
?
??? \admin> sqlplus sys/sys as sysdba
??? \admin> sqlplus /as sysdba
?
??? \admin> sqlplus /nolog
??? SQL> conn sys/sys as sysdba
?
??? 注:如果需要加鏈接字符串,則為sys/sys@DODO as sysdba
??????? 不填時(shí)默認(rèn)登錄本機(jī)數(shù)據(jù)庫(kù),若為遠(yuǎn)程鏈接則必須填寫
?
?
?
二、基本操作命令:
?
????1、執(zhí)行一個(gè)SQL腳本
?
??? SQL> start D:\a.sql
??? SQL> @ D:\a.sql
??? 注:若需要在一個(gè)腳本中調(diào)用另一個(gè)腳本,則使用 @@D:\a.sql
?
????2、重新執(zhí)行上一次命令:
?
??? SQL> /?????????????? --也可使用 run/r 來替代執(zhí)行
?
????3、編輯腳本:
?
??? SQL> edit??????????? --編輯當(dāng)前輸入的文本(前1次執(zhí)行的部分)
??? SQL> edit D:\a.sql?? --編輯制定文檔
??? 注:在txt中編輯完成后保存,關(guān)閉即修改完成,使用“/”后運(yùn)行
?
????4、保存腳本:
?
??? SQL> save a????????? --自動(dòng)存檔為a.sql 保存在C:\Documents and Settings\wangxiaoqi
??? SQL> save D:\a?????? --保存到D:\a.sql
?
????5、導(dǎo)入腳本:
?
??? SQL> get D:\a
?
????6、顯示一個(gè)表結(jié)構(gòu):
?
??? SQL> desc tab??????? --如果tab不是表,則只顯示其類型和名字
?
????7、保存所有輸入:
?
??? SQL> spool D:\xxx??? --建立一個(gè)xxx.LST文件
??? SQL> spool?????????? --顯示當(dāng)前spool狀態(tài)
??? SQL> select * from dual;
??? SQL> spool off?????? --結(jié)束錄入
???
????8、執(zhí)行過程
??? SQL> execute
?a;
?
????9、增加頁(yè)眉和頁(yè)腳:
?
??? SQL> TTITLE abc??????--添加頁(yè)眉“abc”
??? SQL> BTITLE def????? --添加頁(yè)腳“def”
??? SQL> TTITLE OFF????? --取消頁(yè)眉顯示
?
?
?
三、COLUMN[COL]命令修改字段屬性:
?
??? 可以修改的屬性有:
??? ALI[AS] alias
??? CLE[AR]?
??? FOLD_A[FTER]?
??? FOLD_B[EFORE]?
??? FOR[MAT] format?
??? HEA[DING] text?
??? JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}?
??? LIKE { expr|alias}?
??? NEWL[INE]?
??? NEW_V[ALUE] variable?
??? NOPRI[NT]|PRI[NT]?
??? NUL[L] text?
??? OLD_V[ALUE] variable?
??? ON|OFF?
??? WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
??? 注:若不同表的同列名,會(huì)一起改掉!
?
????1、HEADING--改變字段名
?
??? SQL> COLUMN id HEADING 'XX|YY'? --使用'|'可將列名顯示為兩行
?
????2、FORMAT--改變字符長(zhǎng)度 & 格式化數(shù)值
?
??? SQL> COLUMN id FORMAT a20?????? --此字段長(zhǎng)20個(gè)字符,只能針對(duì)字符,若為數(shù)字則無法正常顯示
??? SQL> COLUMN id FORMAT $999.00?? --前綴$,小數(shù)點(diǎn)前3位,小數(shù)點(diǎn)后2位四舍五入
?
????3、JUSTIFY--改變字段名顯示位置
?
??? SQL> COLUMN id JUSTIFY center?? --居中顯示,默認(rèn)的都是靠右(r
)顯示
?
????4、NOPRINT--不顯示
?
??? SQL> COLUMN id NOPRINT????????? --不顯示出來,可用PRINT設(shè)置回來
?
????5、NULL--設(shè)置NULL值顯示
?
??? SQL> COLUMN COMM NULL?0.00????? --將NULL值設(shè)置位0.00? 注意必須加上COMM??注:不起作用。??
?
????6、WRAPPED--設(shè)置回繞方式
?
??? SQL> COLUMN id FORMAT a5??????? --設(shè)置長(zhǎng)度為5
??? SQL> COLUMN id WRAPPED?????????--表示直接按長(zhǎng)度回繞
??? SQL> COLUMN id WORD_WRAPPED???--按單詞回繞
??? SQL> COLUMN id TRUNCATED??????--直接按長(zhǎng)度截?cái)?/font>
?
????7、COLUMN--顯示當(dāng)前列所有屬性
?
??? SQL> COLUMN id????????????????? --后面不加列名時(shí)顯示所有的COLUMN
?
????8、OFF|ON--設(shè)置某一字段關(guān)閉
?
??? SQL> COLUMN id OFF
?
????9、CLEAR--清空所有字段屬性
?
??? SQL> CLEAR COLUMNS
?
?
?
四、SQL*Plus的系統(tǒng)參數(shù):
?
??? show all???????? --顯示所有系統(tǒng)參數(shù)的當(dāng)前值
??? show?[參數(shù)]????? --顯示某個(gè)系統(tǒng)參數(shù)值
??? set? [參數(shù)][值]? --設(shè)置系統(tǒng)參數(shù)值
?
??? appinfo is OFF and set to "SQL*Plus"
??? arraysize 15
??? SQL*Plus一次從oracle獲取的行數(shù),設(shè)置越大可提高效率,但是對(duì)內(nèi)存有要求,1000以上效果不大
??? autocommit OFF
??? 針對(duì)session的自動(dòng)提交
SQL> SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}?? --有IMM[EDIATE]則無需再ON
??? autoprint OFF
??? autorecovery OFF
??? autotrace OFF
????設(shè)置可以對(duì)執(zhí)行的SQL進(jìn)行分析 SQL> SET AUTOTRACE ON
??? blockterminator "." (hex 2e)
??? btitle OFF and is the first few characters of the next SELECT statement
??? cmdsep OFF
??? colsep " "
??? 設(shè)置列與列之間的分割符號(hào) SQL> SET COLSEP '|'
??? compatibility version NATIVE
??? 數(shù)據(jù)庫(kù)版本,NATIVE為默認(rèn),可制定V6,V7,V8
??? concat "." (hex 2e)
??? copycommit 0
??? COPYTYPECHECK is ON
??? define "&" (hex 26)
??? 替換變量時(shí)所使用的字符
??? describe DEPTH 1 LINENUM OFF INDENT ON
??? echo OFF
??? 是否顯示執(zhí)行代碼
SQL> SET ECHO {ON|OFF}
??? editfile "afiedt.buf"
??? embedded OFF
??? escape OFF
??? FEEDBACK ON for 6 or more rows
??? 查詢、修改時(shí)所影響的行數(shù)
SQL> SET FEED[BACK] {6|n|ON|OFF}
??? flagger OFF
??? flush ON
??? heading ON
??? 是否顯示列標(biāo)題
SQL> SET HEA[DING] {ON|OFF}
??? headsep "|" (hex 7c)
??? instance "local"
??? linesize 100
??? 設(shè)置一行可容納的字符數(shù)
SQL> SET LIN[ESIZE] {80|n}
??? lno 8
??? loboffset 1
??? logsource ""
??? long 5000
??? longchunksize 80
??? markup HTML OFF ...
??? newpage 1
??? 頁(yè)與頁(yè)之間的分隔符
SQL> SET NEWP[AGE] {1|n|NONE}
????????????? 當(dāng)set newpage 0 時(shí),會(huì)在每頁(yè)的開頭有一個(gè)小的黑方框。
????????????? 當(dāng)set newpage n 時(shí),會(huì)在頁(yè)和頁(yè)之間隔著n個(gè)空行。
????????????? 當(dāng)set newpage none 時(shí),會(huì)在頁(yè)和頁(yè)之間沒有任何間隔。
??? null ""
??? 設(shè)置null值?
SQL> SET NULL?0.00
???????????????????? 但是此值顯示出來后必為字符型
??? numformat ""
??? numwidth 10
????設(shè)置number類型的長(zhǎng)度限制 SQL> SET NUM[WIDTH] 16
??? pagesize 9999
??? 一頁(yè)顯示多少行
SQL> SET PAGES[IZE] {24|n}
???????????????????? 當(dāng)設(shè)置為0時(shí),則所有行顯示在一頁(yè)中,并且不顯示標(biāo)題行
??? PAUSE is OFF
??? pno 1
??? recsep WRAP
??? recsepchar " " (hex 20)
??? release 1002000100
??? repfooter OFF and is NULL
??? repheader OFF and is NULL
??? serveroutput ON SIZE 1000000 FORMAT WORD_WRAPPED
??? 輸出DBMS.OUTPUT時(shí)是否顯示
SQL> SET SERVEROUT[PUT] {ON|OFF}?[size n]
??? shiftinout INVISIBLE
??? showmode OFF
??? spool OFF
??? sqlblanklines OFF
??? sqlcase MIXED
??? sqlcode 0
??? sqlcontinue "> "
??? sqlnumber ON
??? sqlpluscompatibility 10.2.0
??? sqlprefix "#" (hex 23)
??? sqlprompt "
wangxiaoqi@DODO
> "
??? sqlterminator ";" (hex 3b)
??? suffix "sql"
??? tab ON
??? termout ON
??? 是否顯示輸出內(nèi)容,例如spool輸出?
SQL> SET TERM[OUT] {ON|OFF}
??? timing OFF
??? SQL語句執(zhí)行花費(fèi)時(shí)間顯示?
set TIMING??{ON|OFF}
??? trimout ON
??? 標(biāo)準(zhǔn)輸出中每行最后的空格是否去掉
SQL> SET TRIMS[OUT] {ON|OFF}
??? trimspool ON
??? spool標(biāo)準(zhǔn)輸出中每行最后的空格是否去掉
SQL> SET TRIMS[OUT] {ON|OFF}
??? ttitle OFF and is the first few characters of the next SELECT statement
??? underline "-" (hex 2d)
??? USER is "WANGXIAOQI"
??? verify ON
??? wrap : lines will be wrapped
??? 當(dāng)長(zhǎng)度超過時(shí)是否回繞?
SQL> SET WRA[P] {ON|OFF}?? --基本上都要ON
?
?
?
五、一些常用的小操作:
?
??? show user????????????????????? --查看當(dāng)前登錄用戶
??? show errors??????????????????? --顯示錯(cuò)誤信息
??? show?rel[ease]???????????????? --顯示版本
??? show SGA?????????????????????? --顯示SGA
??? set time on??????????????????? --前端始終顯示時(shí)間
??? select name from v$database;?? --查看當(dāng)前所在數(shù)據(jù)庫(kù)
??? select * from v$instance;????? --查看所有數(shù)據(jù)庫(kù)實(shí)例(似乎沒什么用)
??? select * from V_$PWFILE_USERS; --查看那些用戶有SYSDBA/SYSOPER權(quán)限
-The End-