




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
SQL*PLUS命令的使用大全 Oracle的sql*plus是與oracle進行交互的客戶端工具。在sql*plus中,可以運行sql*plus命令與sql*plus語句。 我們通常所說的DML、DDL、DCL語句都是sql*plus語句,它們執(zhí)行完后,都可以保存在一個被稱為sql buffer的內(nèi)存區(qū)域中,并且只能保存一條最近執(zhí)行的sql語句,我們可以對保存在sql buffer中的sql 語句進行修改,然后再次執(zhí)行,sql*plus一般都與數(shù)據(jù)庫打交道。 除了sql*plus語句,在sql*plus中執(zhí)行的其它語句我們稱之為sql*plus命令。它們執(zhí)行完后,不保存在sql buffer的內(nèi)存區(qū)域中,它們一般用來對輸出的結(jié)果進行格式化顯示,以便于制作報表。 下面就介紹一下一些常用的sql*plus命令: 1. 執(zhí)行一個SQL腳本文件 SQLstart file_name SQL file_name 我們可以將多條sql語句保存在一個文本文件中,這樣當要執(zhí)行這個文件中的所有的sql語句時,用上面的任一命令即可,這類似于dos中的批處理。 與的區(qū)別是什么?等于start命令,用來運行一個sql腳本文件。命令調(diào)用當前目錄下的,或指定全路徑,或可以通過SQLPATH環(huán)境變量搜尋到的腳本文件。該命令使用是一般要指定要執(zhí)行的文件的全路徑,否則從缺省路徑(可用SQLPATH變量指定)下讀取指定的文件。用在sql腳本文件中,用來說明用執(zhí)行的sql腳本文件與所在的文件在同一目錄下,而不用指定要執(zhí)行sql腳本文件的全路徑,也不是從SQLPATH環(huán)境變量指定的路徑中尋找sql腳本文件,該命令一般用在腳本文件中。如:在c:temp目錄下有文件start.sql和nest_start.sql,start.sql腳本文件的內(nèi)容為:nest_start.sql - - 相當于 c:tempnest_start.sql則我們在sql*plus中,這樣執(zhí)行:SQL c:tempstart.sql 2. 對當前的輸入進行編輯 SQLedit 3. 重新運行上一次運行的sql語句 SQL/ 4. 將顯示的內(nèi)容輸出到指定文件 SQL SPOOL file_name 在屏幕上的所有內(nèi)容都包含在該文件中,包括你輸入的sql語句。 5. 關(guān)閉spool輸出 SQL SPOOL OFF 只有關(guān)閉spool輸出,才會在輸出文件中看到輸出的內(nèi)容。 6顯示一個表的結(jié)構(gòu) SQL desc table_name 7. COL命令: 主要格式化列的顯示形式。 該命令有許多選項,具體如下: COLUMN column|expr option . Option選項可以是如下的子句: ALIAS alias CLEAR FOLD_AFTER FOLD_BEFORE FORMAT format HEADING text JUSTIFY LEFT|CENTER|CENTRE|RIGHT LIKE expr|alias NEWLINE NEW_VALUE variable NOPRINT|PRINT NULL text OLD_VALUE variable ON|OFF WRAPPED|WORD_WRAPPED|TRUNCATED 1). 改變?nèi)笔〉牧袠祟} COLUMN column_name HEADING column_heading For example: Sqlselect * from dept; DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK sqlcolLOC heading location sqlselect * from dept; DEPTNO DNAME location - - - 10 ACCOUNTING NEW YORK 2). 將列名ENAME改為新列名EMPLOYEE NAME并將新列名放在兩行上: Sqlselect * from emp Departmentname Salary - - - 10 aaa 11 SQL COLUMN ENAME HEADING Employee|Name Sqlselect * from emp Employee Departmentname Salary - - - 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改變列的顯示長度: FORMAT format Sqlselect empno,ename,job from emp; EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN Sql col ename format a40 EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 4). 設(shè)置列標題的對齊方式 JUSTIFY LEFT|CENTER|CENTRE|RIGHT SQL col ename justify center SQL / EMPNO ENAME JOB - - - 7369 SMITH CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN 對于NUMBER型的列,列標題缺省在右邊,其它類型的列標題缺省在左邊 5). 不讓一個列顯示在屏幕上 NOPRINT|PRINT SQL col job noprint SQL / EMPNO ENAME - - 7369 SMITH 7499 ALLEN 7521 WARD 6). 格式化NUMBER類型列的顯示: SQL COLUMN SAL FORMAT $99,990 SQL / Employee Department Name Salary Commission - - - - 30 ALLEN $1,600 300 7). 顯示列值時,如果列值為NULL值,用text值代替NULL值 COMM NULL text SQLCOL COMM NULL text 8). 設(shè)置一個列的回繞方式 WRAPPED|WORD_WRAPPED|TRUNCATED COL1 - HOW ARE YOU? SQLCOL COL1 FORMAT A5 SQLCOL COL1 WRAPPED COL1 - HOW A RE YO U? SQL COL COL1 WORD_WRAPPED COL1 - HOW ARE YOU? SQL COL COL1 WORD_WRAPPED COL1 - HOW A 9). 顯示列的當前的顯示屬性值 SQL COLUMN column_name 10). 將所有列的顯示屬性設(shè)為缺省值 SQL CLEAR COLUMNS 8. 屏蔽掉一個列中顯示的相同的值 BREAK ON break_column SQL BREAK ON DEPTNO SQL SELECT DEPTNO, ENAME, SAL FROM EMP WHERE SAL < 2500 ORDER BY DEPTNO; DEPTNO ENAME SAL - - - 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 9. 在上面屏蔽掉一個列中顯示的相同的值的顯示中,每當列值變化時在值變化之前插入n個空行。 BREAK ON break_column SKIP n SQL BREAK ON DEPTNO SKIP 1 SQL / DEPTNO ENAME SAL - - - 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 10. 顯示對BREAK的設(shè)置 SQL BREAK 11. 刪除6、7的設(shè)置 SQL CLEAR BREAKS 12. Set 命令: 該命令包含許多子命令: SET system_variable value system_variable value 可以是如下的子句之一: APPINFOON|OFF|text ARRAYSIZE 15|n AUTOCOMMITON|OFF|IMMEDIATE|n AUTOPRINT ON|OFF AUTORECOVERY ON|OFF AUTOTRACE ON|OFF|TRACEONLY EXPLAIN STATISTICS BLOCKTERMINATOR .|c CMDSEP ;|c|ON|OFF COLSEP _|text COMPATIBILITYV7|V8|NATIVE CONCAT .|c|ON|OFF COPYCOMMIT 0|n COPYTYPECHECK ON|OFF DEFINE &|c|ON|OFF DESCRIBE DEPTH 1|n|ALLLINENUM ON|OFFINDENT ON|OFF ECHO ON|OFF EDITFILE file_name.ext EMBEDDED ON|OFF ESCAPE |c|ON|OFF FEEDBACK 6|n|ON|OFF FLAGGER OFF|ENTRY |INTERMEDIATE|FULL FLUSH ON|OFF HEADING ON|OFF HEADSEP |c|ON|OFF INSTANCE instance_path|LOCAL LINESIZE 80|n LOBOFFSET n|1 LOGSOURCE pathname LONG 80|n LONGCHUNKSIZE 80|n MARKUP HTML ON|OFF HEAD text BODY text ENTMAP ON|OFF SPOOL ON|OFF PREFORMAT ON|OFF NEWPAGE 1|n|NONE NULL text NUMFORMAT format NUMWIDTH 10|n PAGESIZE 24|n PAUSE ON|OFF|text RECSEP WRAPPED|EACH|OFF RECSEPCHAR _|c SERVEROUTPUT ON|OFF SIZE n FORMAT WRAPPED|WORD_ WRAPPED|TRUNCATED SHIFTINOUT VISIBLE|INVISIBLE SHOWMODE ON|OFF SQLBLANKLINES ON|OFF SQLCASE MIXED|LOWER|UPPER SQLCONTINUE |text SQLNUMBER ON|OFF SQLPREFIX #|c SQLPROMPT SQL|text SQLTERMINATOR ;|c|ON|OFF SUFFIX SQL|text TAB ON|OFF TERMOUT ON|OFF TIME ON|OFF TIMING ON|OFF TRIMOUT ON|OFF TRIMSPOOL ON|OFF UNDERLINE -|c|ON|OFF VERIFY ON|OFF WRAP ON|OFF 1). 設(shè)置當前session是否對修改的數(shù)據(jù)進行自動提交 SQLSET AUTOCOMMIT ON|OFF|IMMEDIATE| n 2)在用start命令執(zhí)行一個sql腳本時,是否顯示腳本中正在執(zhí)行的SQL語句 SQL SET ECHO ON|OFF 3).是否顯示當前sql語句查詢或修改的行數(shù) SQL SET FEEDBACK 6|n|ON|OFF 默認只有結(jié)果大于6行時才顯示結(jié)果的行數(shù)。如果set feedback 1 ,則不管查詢到多少行都返回。當為off 時,一律不顯示查詢的行數(shù) 4).是否顯示列標題 SQL SET HEADING ON|OFF 當set heading off 時,在每頁的上面不顯示列標題,而是以空白行代替 5).設(shè)置一行可以容納的字符數(shù) SQL SET LINESIZE 80|n 如果一行的輸出內(nèi)容大于設(shè)置的一行可容納的字符數(shù),則折行顯示。 6).設(shè)置頁與頁之間的分隔 SQL SET NEWPAGE 1|n|NONE 當set newpage 0 時,會在每頁的開頭有一個小的黑方框。 當set newpage n 時,會在頁和頁之間隔著n個空行。 當set newpage none 時,會在頁和頁之間沒有任何間隔。 7).顯示時,用text值代替NULL值 SQL SET NULL text 8).設(shè)置一頁有多少行數(shù) SQL SET PAGESIZE 24|n 如果設(shè)為0,則所有的輸出內(nèi)容為一頁并且不顯示列標題 9).是否顯示用DBMS_OUTPUT.PUT_LINE包進行輸出的信息。 SQL SET SERVEROUTPUT ON|OFF在編寫存儲過程時,我們有時會用dbms_output.put_line將必要的信息輸出,以便對存儲過程進行調(diào)試,只有將serveroutput變量設(shè)為on后,信息才能顯示在屏幕上。 10).當SQL語句的長度大于LINESIZE時,是否在顯示時截取SQL語句。 SQL SET WRAP ON|OFF 當輸出的行的長度大于設(shè)置的行的長度時(用set linesize n命令設(shè)置),當set wrap on時,輸出行的多于的字符會另起一行顯示,否則,會將輸出行的多于字符切除,不予顯示。 11).是否在屏幕上顯示輸出的內(nèi)容,主要用與SPOOL結(jié)合使用。 SQL SET TERMOUT ON|OFF 在用spool命令將一個大表中的內(nèi)容輸出到一個文件中時,將內(nèi)容輸出在屏幕上會耗費大量的時間,設(shè)置set termspool off后,則輸出的內(nèi)容只會保存在輸出文件中,不會顯示在屏幕上,極大的提高了spool的速度。 12).將SPOOL輸出中每行后面多余的空格去掉 SQL SET TRIMSOUT ON|OFF 13)顯示每個sql語句花費的執(zhí)行時間 set TIMINGON|OFF 14). 遇到空行時不認為語句已經(jīng)結(jié)束,從后續(xù)行接著讀入。SET SQLBLANKLINES ONSql*plus中, 不允許sql語句中間有空行, 這在從其它地方拷貝腳本到sql*plus中執(zhí)行時很麻煩. 比如下面的腳本:select deptno, empno, enamefrom empwhere empno = 7788;如果拷貝到sql*plus中執(zhí)行, 就會出現(xiàn)錯誤。這個命令可以解決該問題15).設(shè)置DBMS_OUTPUT的輸出SET SERVEROUTPUT ON BUFFER 20000用dbms_output.put_line(strin_content);可以在存儲過程中輸出信息,對存儲過程進行調(diào)試如果想讓dbms_output.put_line( abc);的輸出顯示為:SQL abc,而不是SQLabc,則在SET SERVEROUTPUT ON后加format wrapped參數(shù)。16). 輸出的數(shù)據(jù)為html格式set markup html在8.1.7版本(也許是816? 不太確定)以后, sql*plus中有一個set markup html的命令, 可以將sql*plus的輸出以html格式展現(xiàn).注意其中的spool on, 當在屏幕上輸出的時候, 我們看不出與不加spool on有什么區(qū)別, 但是當我們使用spool filename 輸出到文件的時候, 會看到spool文件中出現(xiàn)了等tag.14修改sql buffer中的當前行中,第一個出現(xiàn)的字符串 CHANGE /old_value/new_value SQL l 1* select * from dept SQL c/dept/emp 1* select * from emp 15編輯sql buffer中的sql語句 EDIT 16顯示sql buffer中的sql語句,list n顯示sql buffer中的第n行,并使第n行成為當前行 LIST n 17在sql buffer的當前行下面加一行或多行 INPUT 18將指定的文本加到sql buffer的當前行后面 APPEND SQL select deptno, 2dname 3from dept; DEPTNO DNAME - - 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS SQL L 2 2* dname SQL a ,loc 2* dname,loc SQL L 1select deptno, 2dname,loc 3* from dept SQL / DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 19將sql buffer中的sql語句保存到一個文件中 SAVE file_name 20將一個文件中的sql語句導入到sql buffer中 GET file_name 21再次執(zhí)行剛才已經(jīng)執(zhí)行的sql語句 RUN or / 22執(zhí)行一個存儲過程 EXECUTE procedure_name 23在sql*plus中連接到指定的數(shù)據(jù)庫 CONNECT user_name/passwddb_alias 24設(shè)置每個報表的頂部標題 TTITLE 25設(shè)置每個報表的尾部標題 BTITLE 26寫一個注釋 REMARK text 27將指定的信息或一個空行輸出到屏幕上 PROMPT text 28將執(zhí)行的過程暫停,等待用戶響應后繼續(xù)執(zhí)行 PAUSE text SqlPAUSE Adjust paper and press RETURN to continue. 29將一個數(shù)據(jù)庫中的一些數(shù)據(jù)拷貝到另外一個數(shù)據(jù)庫(如將一個表的數(shù)據(jù)拷貝到另一個數(shù)據(jù)庫) COPY FROM database | TO database | FROM database TO database APPEND|CREATE|INSERT|REPLACE destination_table (column, column, column, .) USING query sqlCOPY FROM SCOTT/TIGERHQ TO JOHN/CHROMEWESTcreate emp_temp USING SELECT * FROM EMP 30不退出sql*plus,在sql*plus中執(zhí)行一個操作系統(tǒng)命令: HOST Sql host hostname 該命令在windows下可能被支持。 31在sql*plus中,切換到操作系統(tǒng)命令提示符下,運行操作系統(tǒng)命令后,可以再次切換回sql*plus: ! sql! $hostname $exit sql 該命令在windows下不被支持。 32顯示sql*plus命令的幫助 HELP 如何安裝幫助文件: Sql ?sqlplusadminhelphlpbld.sql ?sqlplusadminhelphelpus.sql Sqlhelp index 33顯示sql*plus系統(tǒng)變量的值或sql*plus環(huán)境變量的值 Syntax SHOW option where option represents one of the following terms or clauses: system_variable ALL BTITLE ERRORS FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY| TRIGGER|VIEW|TYPE|TYPE BODY LNO PARAMETERS parameter_name PNO RELEASE REPFOOTER REPHEADER SGA SPOOL SQLCODE TTITLE USER 1) . 顯示當前環(huán)境變量的值: Show all 2) . 顯示當前在創(chuàng)建函數(shù)、存儲過程、觸發(fā)器、包等對象的錯誤信息 Show error 當創(chuàng)建一個函數(shù)、存儲過程等出錯時,變可以用該命令查看在那個地方出錯及相應的出錯信息,進行修改后再次進行編譯。 3) . 顯示初始化參數(shù)的值: show PARAMETERS parameter_name 4) . 顯示數(shù)據(jù)庫的版本: show RELEASE 5) . 顯示SGA的大小 show SGA 6). 顯示當前的用戶名 show user34.查詢一個用戶下的對象SQLselect * from tab;SQLselect * from user_objects;35.查詢一個用戶下的所有的表SQLselect * from user_tables;36.查詢一個用戶下的所有的索引SQLselect * from user_indexes;37. 定義一個用戶變量方法有兩個:a. defineb. COLUMN column|expr NEW_VALUE variable NOPRINT|PRINT OLD_VALUE variableNOPRINT|PRINT下面對每種方式給予解釋:a. SyntaxDEFINE variable|variable = text定義一個用戶變量并且可以分配給它一個CHAR值。assign the value MANAGER to the variable POS, type:SQL DEFINE POS = MANAGERassign the CHAR value 20 to the variable DEPTNO, type:SQL DEFINE DEPTNO = 20list the definition of DEPTNO, enterSQL DEFINE DEPTNO DEFINE DEPTNO = ”20” (CHAR)定義了用戶變量POS后,就可以在sql*plus中用&POS或&POS來引用該變量的值,sql*plus不會再提示你給變量輸入值。b. COLUMN column|expr NEW_VALUE variable NOPRINT|PRINTNEW_VALUE variable指定一個變量容納查詢出的列值。例:column col_name new_value var_name noprint select col_name from table_name where .將下面查詢出的col_name列的值賦給var_name變量.一個綜合的例子:得到一個列值的兩次查詢之差(此例為10秒之內(nèi)共提交了多少事務):column redo_writes new_value commit_countselect sum(stat.value) redo_writesfrom v$sesstat stat, v$statname snwhere stat.statistic# = sn.statistic#and = user commits;- 等待一會兒(此處為10秒);execute dbms_lock.sleep(10);set veri offselect sum(stat.value) - &commit_count commits_addedfrom v$sesstat stat, v$statname snwhere stat.statistic# = sn.statistic#and = user commits;38. 定義一個綁定變量VARIABLE variable NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR定義一個綁定變量,該變量可以在pl/sql中引用。可以用print命令顯示該綁定變量的信息。如:column inst_numheading Inst Numnew_value inst_numformat 99999;column inst_name heading Instancenew_value inst_name format a12;column db_name heading DB Name new_value db_name format a12;column dbid heading DB Id new_value dbid format 9999999999 just c;promptprompt Current Instanceprompt select d.dbid dbid , db_name , i.instance_number inst_num , i.instance_name inst_namefrom v$database d, v$instance i;variable dbid number;variable inst_num number;begin:dbid :=&dbid;:inst_num:=&inst_num;end;/說明:在sql*plus中,該綁定變量可以作為一個存儲過程的參數(shù),也可以在匿名PL/SQL塊中直接引用。為了顯示用VARIABLE命令創(chuàng)建的綁定變量的值,可以用print命令注意:綁定變量不同于變量:1 定義方法不同2 引用方法不同綁定變量::variable_name 變量:&variable_name or &variable_name3.在sql*plus中,可以定義同名的綁定變量與用戶變量,但是引用的方法不同。39. &與&的區(qū)別&用來創(chuàng)建一個臨時變量,每當遇到這個臨時變量時,都會提示你輸入一個值。&用來創(chuàng)建一個持久變量,就像用用define命令或帶new_vlaue字句的column命令創(chuàng)建的持久變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)供應鏈的綠色轉(zhuǎn)型策略考核試卷
- 電視屏幕亮度自動調(diào)節(jié)異??己嗽嚲?/a>
- 印刷機械行業(yè)政策法規(guī)分析考核試卷
- 中藥注冊與藥品注冊審批中的數(shù)據(jù)保護措施考核試卷
- 跨界合作在家紡品牌推廣中的應用考核試卷
- 客戶關(guān)系管理客戶體驗設(shè)計考核試卷
- 基因編輯與絡病治療策略
- 個人股份協(xié)議書(15篇)
- 機器學習在預測性維護中的潛力
- 模擬散步活動方案
- 2025年中國不銹鋼化學蝕刻劑市場調(diào)查研究報告
- 分級護理質(zhì)量追蹤與持續(xù)改進
- 中學生暑期法制安全教育
- 2024年7月國家開放大學專科《高等數(shù)學基礎(chǔ)》期末紙質(zhì)考試試題及答案
- 工業(yè)廠房水電安裝施工方案
- 國家開放大學《礦井粉塵防治》形成性考核作業(yè)1-3
- 公司與旅行社合作合同范本
- 五年級上冊語文預習晨讀晚默小紙條
- 血液體液濺灑處理
- 電商平臺商家入駐協(xié)議書
- 信息安全意識培訓課件
評論
0/150
提交評論