Decode360's Blog

          業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          SQL Plus基礎命令學習筆記
          ?
          ?
          ??? 依舊是我當年學習的筆記之一,這是在學習SQL Plus時記的。其實在SQL Plus下是有很多其他地方不能使用的功能和技巧的,不過這邊只是一個基本的應用,不涉及一些復雜的東西。好,下面看一下內容:
          ?
          ?
          一、使用cmd登錄:
          ???
          ??? 前提:PATH中設置%oracle_home%/bin
          ?
          ??? \admin> sqlplus
          ??? 輸入用戶名:sys
          ??? 輸入密碼:sys as sysdba(頁面中不顯示)
          ?
          ??? \admin> sqlplus sys/sys as sysdba
          ??? \admin> sqlplus /as sysdba
          ?
          ??? \admin> sqlplus /nolog
          ??? SQL> conn sys/sys as sysdba
          ?
          ??? 注:如果需要加鏈接字符串,則為sys/sys@DODO as sysdba
          ??????? 不填時默認登錄本機數據庫,若為遠程鏈接則必須填寫
          ?
          ?
          ?
          二、基本操作命令:
          ?
          1、執行一個SQL腳本
          ?
          ??? SQL> start D:\a.sql
          ??? SQL> @ D:\a.sql
          ??? 注:若需要在一個腳本中調用另一個腳本,則使用 @@D:\a.sql
          ?
          2、重新執行上一次命令
          ?
          ??? SQL> /?????????????? --也可使用 run/r 來替代執行
          ?
          3、編輯腳本:
          ?
          ??? SQL> edit??????????? --編輯當前輸入的文本(前1次執行的部分)
          ??? SQL> edit D:\a.sql?? --編輯制定文檔
          ??? 注:在txt中編輯完成后保存,關閉即修改完成,使用“/”后運行
          ?
          4、保存腳本:
          ?
          ??? SQL> save a????????? --自動存檔為a.sql 保存在C:\Documents and Settings\wangxiaoqi
          ??? SQL> save D:\a?????? --保存到D:\a.sql
          ?
          5、導入腳本:
          ?
          ??? SQL> get D:\a
          ?
          6、顯示一個表結構:
          ?
          ??? SQL> desc tab??????? --如果tab不是表,則只顯示其類型和名字
          ?
          7、保存所有輸入:
          ?
          ??? SQL> spool D:\xxx??? --建立一個xxx.LST文件
          ??? SQL> spool?????????? --顯示當前spool狀態
          ??? SQL> select * from dual;
          ??? SQL> spool off?????? --結束錄入
          ???
          8、執行過程
          ??? SQL> execute a;
          ?
          9、增加頁眉和頁腳:
          ?
          ??? SQL> TTITLE abc????? --添加頁眉“abc”
          ??? SQL> BTITLE def????? --添加頁腳“def”
          ??? SQL> TTITLE OFF????? --取消頁眉顯示
          ?
          ?
          ?
          三、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]
          ??? 注:若不同表的同列名,會一起改掉!
          ?
          1、HEADING--改變字段名
          ?
          ??? SQL> COLUMN id HEADING 'XX|YY'? --使用'|'可將列名顯示為兩行
          ?
          2、FORMAT--改變字符長度 & 格式化數值
          ?
          ??? SQL> COLUMN id FORMAT a20?????? --此字段長20個字符,只能針對字符,若為數字則無法正常顯示
          ??? SQL> COLUMN id FORMAT $999.00?? --前綴$,小數點前3位,小數點后2位四舍五入
          ?
          3、JUSTIFY--改變字段名顯示位置
          ?
          ??? SQL> COLUMN id JUSTIFY center?? --居中顯示,默認的都是靠右(r )顯示
          ?
          4、NOPRINT--不顯示
          ?
          ??? SQL> COLUMN id NOPRINT????????? --不顯示出來,可用PRINT設置回來
          ?
          5、NULL--設置NULL值顯示
          ?
          ??? SQL> COLUMN COMM NULL 0.00????? --將NULL值設置位0.00? 注意必須加上COMM? 注:不起作用。??
          ?
          6、WRAPPED--設置回繞方式
          ?
          ??? SQL> COLUMN id FORMAT a5??????? --設置長度為5
          ??? SQL> COLUMN id WRAPPED???????? --表示直接按長度回繞
          ??? SQL> COLUMN id WORD_WRAPPED?? --按單詞回繞
          ??? SQL> COLUMN id TRUNCATED????? --直接按長度截斷
          ?
          7、COLUMN--顯示當前列所有屬性
          ?
          ??? SQL> COLUMN id????????????????? --后面不加列名時顯示所有的COLUMN
          ?
          8、OFF|ON--設置某一字段關閉
          ?
          ??? SQL> COLUMN id OFF
          ?
          9、CLEAR--清空所有字段屬性
          ?
          ??? SQL> CLEAR COLUMNS
          ?
          ?
          ?
          四、SQL*Plus的系統參數:
          ?
          ??? show all???????? --顯示所有系統參數的當前值
          ??? show [參數]????? --顯示某個系統參數值
          ??? set? [參數][值]? --設置系統參數值
          ?
          ??? appinfo is OFF and set to "SQL*Plus"
          ??? arraysize 15
          ??? SQL*Plus一次從oracle獲取的行數,設置越大可提高效率,但是對內存有要求,1000以上效果不大
          ??? autocommit OFF
          ??? 針對session的自動提交 SQL> SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}?? --有IMM[EDIATE]則無需再ON
          ??? autoprint OFF
          ??? autorecovery OFF
          ??? autotrace OFF
          ??? 設置可以對執行的SQL進行分析 SQL> SET AUTOTRACE ON
          ??? blockterminator "." (hex 2e)
          ??? btitle OFF and is the first few characters of the next SELECT statement
          ??? cmdsep OFF
          ??? colsep " "
          ??? 設置列與列之間的分割符號 SQL> SET COLSEP '|'
          ??? compatibility version NATIVE
          ??? 數據庫版本,NATIVE為默認,可制定V6,V7,V8
          ??? concat "." (hex 2e)
          ??? copycommit 0
          ??? COPYTYPECHECK is ON
          ??? define "&" (hex 26)
          ??? 替換變量時所使用的字符
          ??? describe DEPTH 1 LINENUM OFF INDENT ON
          ??? echo OFF
          ??? 是否顯示執行代碼 SQL> SET ECHO {ON|OFF}
          ??? editfile "afiedt.buf"
          ??? embedded OFF
          ??? escape OFF
          ??? FEEDBACK ON for 6 or more rows
          ??? 查詢、修改時所影響的行數 SQL> SET FEED[BACK] {6|n|ON|OFF}
          ??? flagger OFF
          ??? flush ON
          ??? heading ON
          ??? 是否顯示列標題 SQL> SET HEA[DING] {ON|OFF}
          ??? headsep "|" (hex 7c)
          ??? instance "local"
          ??? linesize 100
          ??? 設置一行可容納的字符數 SQL> SET LIN[ESIZE] {80|n}
          ??? lno 8
          ??? loboffset 1
          ??? logsource ""
          ??? long 5000
          ??? longchunksize 80
          ??? markup HTML OFF ...
          ??? newpage 1
          ??? 頁與頁之間的分隔符 SQL> SET NEWP[AGE] {1|n|NONE}
          ????????????? 當set newpage 0 時,會在每頁的開頭有一個小的黑方框。
          ????????????? 當set newpage n 時,會在頁和頁之間隔著n個空行。
          ????????????? 當set newpage none 時,會在頁和頁之間沒有任何間隔。
          ??? null ""
          ??? 設置null值? SQL> SET NULL 0.00
          ???????????????????? 但是此值顯示出來后必為字符型
          ??? numformat ""
          ??? numwidth 10
          ??? 設置number類型的長度限制 SQL> SET NUM[WIDTH] 16
          ??? pagesize 9999
          ??? 一頁顯示多少行 SQL> SET PAGES[IZE] {24|n}
          ???????????????????? 當設置為0時,則所有行顯示在一頁中,并且不顯示標題行
          ??? 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時是否顯示 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
          ??? 是否顯示輸出內容,例如spool輸出? SQL> SET TERM[OUT] {ON|OFF}
          ??? timing OFF
          ??? SQL語句執行花費時間顯示? set TIMING? {ON|OFF}
          ??? trimout ON
          ??? 標準輸出中每行最后的空格是否去掉 SQL> SET TRIMS[OUT] {ON|OFF}
          ??? trimspool ON
          ??? spool標準輸出中每行最后的空格是否去掉 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
          ??? 當長度超過時是否回繞? SQL> SET WRA[P] {ON|OFF}?? --基本上都要ON
          ?
          ?
          ?
          、一些常用的小操作:
          ?
          ??? show user????????????????????? --查看當前登錄用戶
          ??? show errors??????????????????? --顯示錯誤信息
          ??? show rel[ease]???????????????? --顯示版本
          ??? show SGA?????????????????????? --顯示SGA
          ??? set time on??????????????????? --前端始終顯示時間
          ??? select name from v$database;?? --查看當前所在數據庫
          ??? select * from v$instance;????? --查看所有數據庫實例(似乎沒什么用)
          ??? select * from V_$PWFILE_USERS; --查看那些用戶有SYSDBA/SYSOPER權限
          ?
          ?
          ?
          posted on 2008-11-30 20:29 decode360 閱讀(283) 評論(0)  編輯  收藏 所屬分類: 05.SQL
          主站蜘蛛池模板: 武义县| 黄山市| 温州市| 尉犁县| 盘锦市| 东兰县| 富宁县| 固安县| 兴宁市| 武山县| 肇州县| 磐石市| 普兰店市| 瑞安市| 怀仁县| 秦皇岛市| 四平市| 固原市| 绵阳市| 正阳县| 松溪县| 肃南| 思南县| 宁波市| 曲麻莱县| 布拖县| 澎湖县| 灵山县| 扬中市| 塔城市| 南陵县| 墨脱县| 鸡西市| 信阳市| 漾濞| 乌苏市| 宁城县| 太仆寺旗| 青冈县| 茶陵县| 忻城县|