版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQLPlus命令詳細(xì)說明 2011-10-19 17:23:01 分類: Oracle1. 執(zhí)行一個(gè)SQL腳本文件 SQL>start file_name SQL> file_name 2. 對(duì)當(dāng)前的輸入進(jìn)行編輯 SQL>edit 3. 重新運(yùn)行上一次運(yùn)行的sql語句 SQL>/ 4. 將顯示的內(nèi)容輸出到指定文件 SQL> SPOOL file_name 在屏幕上的所有內(nèi)容都包含在該文件中,包括你輸入的sql語句。 5. 關(guān)閉spool輸出 SQL> SPOOL OFF
2、0; 只有關(guān)閉spool輸出,才會(huì)在輸出文件中看到輸出的內(nèi)容。 6顯示一個(gè)表的結(jié)構(gòu) SQL> desc table_name 7. COL命令: 主要格式化列的顯示形式。 該命令有許多選項(xiàng),具體如下: COLUMN column|expr option . Option選項(xiàng)可以是如下的子句: ALIAS alias CLEAR FOLD_AFTER FOLD_BEFORE FORMAT format HEADING text JUSTIFY LEFT|CENTER|CENTRE|RIGHT LIKE expr|alias NEWLINE NEW_V
3、ALUE variable NOPRINT|PRINT NULL text OLD_VALUE variable ON|OFF WRAPPED|WORD_WRAPPED|TRUNCATED 1). 改變?nèi)笔〉牧袠?biāo)題 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME
4、 LOC - - - 10 ACCOUNTING NEW YORK sql>col LOC heading location
5、 sql>select * from dept; DEPTNO DNAME location - - - 10 ACCOUNTING &
6、#160; NEW YORK 2). 將列名ENAME改為新列名EMPLOYEE NAME并將新列名放在兩行上: Sql>select * from emp Department name Salary - - -
7、160; 10 aaa 11 SQL> COLUMN ENAME HEADING Employee|Name Sql>select * from emp Employee Dep
8、artment name Salary - - - 10 aaa 11 note: the col heading turn into two lines from one li
9、ne. 3). 改變列的顯示長(zhǎng)度: FORMAT format Sql>select empno,ename,job from emp; EMPNO ENAME JOB - - - 7369 SMITH &
10、#160; CLERK 7499 ALLEN SALESMAN 7521 WARD SALESMAN Sql> col ename format a40 EMPNO ENAME
11、60; JOB - - - 736
12、9 SMITH CLERK 7499 ALLEN
13、; SALESMAN 7521 WARD
14、60; SALESMAN 4). 設(shè)置列標(biāo)題的對(duì)齊方式 JUSTIFY LEFT|CENTER|CENTRE|RIGHT SQL> col ename justify center SQL> / EMPNO
15、60; ENAME JOB - - - 7369 SMITH
16、; CLERK 7499 ALLEN
17、; SALESMAN 7521 WARD
18、0; SALESMAN 對(duì)于NUMBER型的列,列標(biāo)題缺省在右邊,其它類型的列標(biāo)題缺省在左邊 5). 不讓一個(gè)列顯示在屏幕上 NOPRINT|PRINT SQL> col job noprint SQL> / EMPNO ENAME -
19、 - 7369 SMITH 7499 ALLEN 7521 WARD 6). 格式化NUMBER類型列的顯示: SQL> COLUMN SAL FORMAT $99,990 SQL> / Employee Department Name Salary Com
20、mission - - - - 30 ALLEN $1,600 300 7). 顯示列值時(shí),如果列值為NULL值,用text值代替NULL值 COMM NULL text SQL>COL COMM NULL text 8). 設(shè)置一個(gè)列的回繞方式 WRAPPED|WORD_WRAPPED|TRUNCATED
21、160; COL1 - HOW ARE YOU? SQL>COL COL1 FORMAT A5 SQL>COL 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). 顯示列的當(dāng)前的顯示屬性值 SQL> COLUMN column_name 10). 將所
22、有列的顯示屬性設(shè)為缺省值 SQL> CLEAR COLUMNS 8. 屏蔽掉一個(gè)列中顯示的相同的值 BREAK ON break_column SQL> BREAK ON DEPTNO SQL> SELECT DEPTNO, ENAME, SAL FROM EMP WHERE SAL < 2500 ORDER BY DEPTNO; DEPTNO ENAME SAL - - -
23、 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS
24、60; 1100 9. 在上面屏蔽掉一個(gè)列中顯示的相同的值的顯示中,每當(dāng)列值變化時(shí)在值變化之前插入n個(gè)空行。 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. 顯示對(duì)BREAK的設(shè)置 SQL> BREAK 11. 刪除6、7的設(shè)置 SQL> CLEA
25、R 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 CO
26、MPATIBILITYV7|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|
27、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
28、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 S
29、UFFIX 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è)置當(dāng)前session是否對(duì)修改的數(shù)據(jù)進(jìn)行自動(dòng)提交 SQL>SET AUTOCOMMIT ON|OFF|IMMEDIATE| n 2)在用start命令執(zhí)行一個(gè)sql腳本時(shí),是否顯示腳本中正在執(zhí)行的SQL語句 SQL> SET ECHO ON|OFF
30、0; 3).是否顯示當(dāng)前sql語句查詢或修改的行數(shù) SQL> SET FEEDBACK 6|n|ON|OFF 默認(rèn)只有結(jié)果大于6行時(shí)才顯示結(jié)果的行數(shù)。如果set feedback 1 ,則不管查詢到多少行都返回。當(dāng)為off 時(shí),一律不顯示查詢的行數(shù) 4).是否顯示列標(biāo)題 SQL> SET HEADING ON|OFF 當(dāng)set heading off 時(shí),在每頁的上面不顯示列標(biāo)題,而是以空白行代替 5).設(shè)置一行可以容納的字符數(shù) SQL> SET LINESIZE 80|n 如果一行的輸出內(nèi)容大于
31、設(shè)置的一行可容納的字符數(shù),則折行顯示。 6).設(shè)置頁與頁之間的分隔 SQL> SET NEWPAGE 1|n|NONE 當(dāng)set newpage 0 時(shí),會(huì)在每頁的開頭有一個(gè)小的黑方框。 當(dāng)set newpage n 時(shí),會(huì)在頁和頁之間隔著n個(gè)空行。 當(dāng)set newpage none 時(shí),會(huì)在頁和頁之間沒有任何間隔。 7).顯示時(shí),用text值代替NULL值 SQL> SET NULL text 8).設(shè)置一頁有多少行數(shù) SQL> SET PAGESIZE 24|n 如果設(shè)為0,則所有的輸出內(nèi)容為一頁并且不顯示列標(biāo)題
32、9).是否顯示用DBMS_OUTPUT.PUT_LINE包進(jìn)行輸出的信息。 SQL> SET SERVEROUTPUT ON|OFF 在編寫存儲(chǔ)過程時(shí),我們有時(shí)會(huì)用dbms_output.put_line將必要的信息輸出,以便對(duì)存儲(chǔ)過程進(jìn)行調(diào)試,只有將serveroutput變量設(shè)為on后,信息才能顯示在屏幕上。 10).當(dāng)SQL語句的長(zhǎng)度大于LINESIZE時(shí),是否在顯示時(shí)截取SQL語句。 SQL> SET WRAP ON|OFF 當(dāng)輸出的行的長(zhǎng)度大于設(shè)置的行的長(zhǎng)度時(shí)(用set linesize n命令設(shè)置),當(dāng)set wrap
33、 on時(shí),輸出行的多于的字符會(huì)另起一行顯示,否則,會(huì)將輸出行的多于字符切除,不予顯示。 11).是否在屏幕上顯示輸出的內(nèi)容,主要用與SPOOL結(jié)合使用。 SQL> SET TERMOUT ON|OFF 在用spool命令將一個(gè)大表中的內(nèi)容輸出到一個(gè)文件中時(shí),將內(nèi)容輸出在屏幕上會(huì)耗費(fèi)大量的時(shí)間,設(shè)置set termspool off后,則輸出的內(nèi)容只會(huì)保存在輸出文件中,不會(huì)顯示在屏幕上,極大的提高了spool的速度。 12).將SPOOL輸出中每行后面多余的空格去掉 SQL> SET TRIMSOUT ON|OFF &
34、#160; 13)顯示每個(gè)sql語句花費(fèi)的執(zhí)行時(shí)間 set TIMING ON|OFF 14). 遇到空行時(shí)不認(rèn)為語句已經(jīng)結(jié)束,從后續(xù)行接著讀入。SET SQLBLANKLINES ONSql*plus中, 不允許sql語句中間有空行, 這在從其它地方拷貝腳本到sql*plus中執(zhí)行時(shí)很麻煩. 比如下面的腳本:select deptno, empno, enamefrom empwhere empno = '7788'如果拷貝到sql*plus中執(zhí)行, 就會(huì)出現(xiàn)錯(cuò)誤。這個(gè)命令可以解決該問題15).設(shè)置DBMS_OUTPUT的輸出SET SER
35、VEROUTPUT ON BUFFER 20000用dbms_output.put_line('strin_content');可以在存儲(chǔ)過程中輸出信息,對(duì)存儲(chǔ)過程進(jìn)行調(diào)試如果想讓dbms_output.put_line(' abc');的輸出顯示為:SQL> abc,而不是SQL>abc,則在SET SERVEROUTPUT ON后加format wrapped參數(shù)。16). 輸出的數(shù)據(jù)為html格式set markup html在8.1.7版本(也許是
36、816? 不太確定)以后, sql*plus中有一個(gè)set markup html的命令, 可以將sql*plus的輸出以html格式展現(xiàn).注意其中的spool on, 當(dāng)在屏幕上輸出的時(shí)候, 我們看不出與不加spool on有什么區(qū)別, 但是當(dāng)我們使用spool filename 輸出到文件的時(shí)候, 會(huì)看到spool文件中出現(xiàn)了等tag.14修改sql buffer中的當(dāng)前行中,第一個(gè)出現(xiàn)的字符串 CHANGE /old_value/new_value SQL> l 1* select * from dept SQL> c/dept/emp
37、 1* select * from emp 15編輯sql buffer中的sql語句 EDIT 16顯示sql buffer中的sql語句,list n顯示sql buffer中的第n行,并使第n行成為當(dāng)前行 LIST n 17在sql buffer的當(dāng)前行下面加一行或多行 INPUT 18將指定的文本加到sql buffer的當(dāng)前行后面 APPEND SQL> select deptno, 2 dname 3 from dept;
38、; DEPTNO DNAME - - 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS SQL> L 2
39、 2* dname SQL> a ,loc 2* dname,loc SQL> L 1 select deptno, 2 dname,loc 3* from dept SQL> / DEPTNO DNAME LOC - - -
40、160; 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CH
41、ICAGO 40 OPERATIONS BOSTON 19將sql buffer中的sql語句保存到一個(gè)文件中 SAVE file_name 20將一個(gè)文件中的sql語句導(dǎo)入到sql buffer中 GET file_name 21再次執(zhí)行剛才已經(jīng)執(zhí)行的sql語句 RUN or / 22執(zhí)行一個(gè)存儲(chǔ)過程 EXECUTE procedure_name 23在sql*plus中連接到指
42、定的數(shù)據(jù)庫(kù) CONNECT user_name/passwddb_alias 24設(shè)置每個(gè)報(bào)表的頂部標(biāo)題 TTITLE 25設(shè)置每個(gè)報(bào)表的尾部標(biāo)題 BTITLE 26寫一個(gè)注釋 REMARK text 27將指定的信息或一個(gè)空行輸出到屏幕上 PROMPT text 28將執(zhí)行的過程暫停,等待用戶響應(yīng)后繼續(xù)執(zhí)行 PAUSE text Sql>PAUSE Adjust paper and press RETURN to continue. 29將一個(gè)數(shù)據(jù)庫(kù)中的一些數(shù)據(jù)拷貝到另外一個(gè)數(shù)據(jù)庫(kù)(如將一
43、個(gè)表的數(shù)據(jù)拷貝到另一個(gè)數(shù)據(jù)庫(kù)) COPY FROM database | TO database | FROM database TO database APPEND|CREATE|INSERT|REPLACE destination_table (column, column, column, .) USING query sql>COPY FROM SCOTT/TIGERHQ TO JOHN/CHROMEWEST create emp_temp USING SELECT * FROM EMP 30不退出sql*plus,在sql*plus中執(zhí)行
44、一個(gè)操作系統(tǒng)命令: HOST Sql> host hostname 該命令在windows下可能被支持。 31在sql*plus中,切換到操作系統(tǒng)命令提示符下,運(yùn)行操作系統(tǒng)命令后,可以再次切換回sql*plus: ! sql>! $hostname $exit sql> 該命令在windows下不被支持。 32顯示sql*plus命令的幫助 HELP 如何安裝幫助文件: Sql> ?/sqlplus/admin/help/hlpbld.sql ?/sqlplus/admin/help/helpus.s
45、ql Sql>help 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
46、 REPFOOTER REPHEADER SGA SPOOL SQLCODE TTITLE USER 1) . 顯示當(dāng)前環(huán)境變量的值: Show all 2) . 顯示當(dāng)前在創(chuàng)建函數(shù)、存儲(chǔ)過程、觸發(fā)器、包等對(duì)象的錯(cuò)誤信息 Show error 當(dāng)創(chuàng)建一個(gè)函數(shù)、存儲(chǔ)過程等出錯(cuò)時(shí),變可以用該命令查看在那個(gè)地方出錯(cuò)及相應(yīng)的出錯(cuò)信息,進(jìn)行修改后再次進(jìn)行編譯。 3) . 顯示初始化參數(shù)的值: show PARAMETERS parameter_name 4) . 顯示數(shù)據(jù)庫(kù)的版本: show RELEASE 5) . 顯示SGA的大小
47、 show SGA 6). 顯示當(dāng)前的用戶名 show user34.查詢一個(gè)用戶下的對(duì)象SQL>select * from tab;SQL>select * from user_objects;35.查詢一個(gè)用戶下的所有的表SQL>select * from user_tables;36.查詢一個(gè)用戶下的所有的索引SQL>select * from user_indexes;37. 定義一個(gè)用戶變量方法有兩個(gè):a. defineb. COLUMN column|expr NEW_VALUE variable NOPRINT|PRINT
48、0; OLD_VALUE variable NOPRINT|PRINT下面對(duì)每種方式給予解釋:a. SyntaxDEFINE variable|variable = text定義一個(gè)用戶變量并且可以分配給它一個(gè)CHAR值。assign the value MANAGER to the v
49、ariable 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或&&PO
50、S來引用該變量的值,sql*plus不會(huì)再提示你給變量輸入值。b. COLUMN column|expr NEW_VALUE variable NOPRINT|PRINTNEW_VALUE variable指定一個(gè)變量容納查詢出的列值。例:column col_name new_value var_name noprint select col_name from table_name where .將下面查詢出的col_name列的值賦給var_name變量.一個(gè)綜合的例子:得到一個(gè)列值的兩次查詢之差(此例為10秒之內(nèi)共提交了多少事務(wù)):column redo_wri
51、tes new_value commit_countselect sum(stat.value) redo_writesfrom v$sesstat stat, v$statname snwhere stat.statistic# = sn.statistic#and = 'user commits'- 等待一會(huì)兒(此處為10秒);execute dbms_lock.sleep(10);set veri offselect sum(stat.value) - &commit_count commits_addedfrom v$sesstat stat,
52、v$statname snwhere stat.statistic# = sn.statistic#and = 'user commits'38. 定義一個(gè)綁定變量VARIABLE variable NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR定義一個(gè)綁定變量,該變量可以在pl/sql中引用??梢杂胮rint命令顯示該綁定變量的信息。如:column inst_num heading "Inst Num"&
53、#160; new_value inst_num format 99999;column inst_name heading "Instance" new_value inst_name format a12;column db_name heading "DB Name" new_value db_name format a12;column dbid heading "DB Id&quo
54、t; new_value dbid format 9999999999 just c;promptprompt Current Instanceprompt select d.dbid dbid ,
55、160; db_name , i.instance_number inst_num , i.instance_name inst_name from v$database d, v$instance i;variable dbid number;variable inst_num
56、0; number;begin :dbid := &dbid; :inst_num := &inst_num;end;/說明:在sql*plus中,該綁定變量可以作為一個(gè)存儲(chǔ)過程的參數(shù),也可以在匿名PL/SQL塊中直接引用。為了顯示用VARIABLE命令創(chuàng)建的綁定變量的值,可以用print命令注意:綁定變量不同于變量:1 定義方法不同2
57、60; 引用方法不同綁定變量::variable_name 變量:&variable_name or &&variable_name3.在sql*plus中,可以定義同名的綁定變量與用戶變量,但是引用的方法不同。39. &與&&的區(qū)別&用來創(chuàng)建一個(gè)臨時(shí)變量,每當(dāng)遇到這個(gè)臨時(shí)變量時(shí),都會(huì)提示你輸入一個(gè)值。&&用來創(chuàng)建一個(gè)持久變量,就像用用define命令或帶new_vlaue字句的column命令創(chuàng)建的持久
58、變量一樣。當(dāng)用&&命令引用這個(gè)變量時(shí),不會(huì)每次遇到該變量就提示用戶鍵入值,而只是在第一次遇到時(shí)提示一次。如,將下面三行語句存為一個(gè)腳本文件,運(yùn)行該腳本文件,會(huì)提示三次,讓輸入deptnoval的值:select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;將下面三行語句存為一個(gè)腳本文件,運(yùn)行該腳本文件,則只會(huì)提
59、示一次,讓輸入deptnoval的值:select count(*) from emp where deptno = &&deptnoval;select count(*) from emp where deptno = &&deptnoval;select count(*) from emp where deptno = &&deptnoval;40在輸入sql語句的過程中臨時(shí)先運(yùn)行一個(gè)sql*plus命令(摘自)#有沒有過這樣的經(jīng)歷? 在sql*plus中敲了很長(zhǎng)的命令后, 突然發(fā)現(xiàn)想不起某個(gè)列的名字了, 如果取消當(dāng)前的命令,待查詢后再重敲,
60、 那太痛苦了. 當(dāng)然你可以另開一個(gè)sql*plus窗口進(jìn)行查詢, 但這里提供的方法更簡(jiǎn)單.比如說, 你想查工資大于4000的員工的信息, 輸入了下面的語句:SQL> select deptno, empno, ename2 from emp3 where這時(shí), 你發(fā)現(xiàn)你想不起來工資的列名是什么了.這種情況下, 只要在下一行以#開頭, 就可以執(zhí)行一條sql*plus命令, 執(zhí)行完后, 剛才的語句可以繼續(xù)輸入SQL>> select deptno, empno, ename2 from emp3 where6 #desc empName Null? Type- - -EMPNO
61、NOT NULL NUMBER(4)ENAME VARCHAR2(10)JOB VARCHAR2(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)6 sal > 4000;DEPTNO EMPNO ENAME- - -10 7839 KING41. SQLPlus中的快速?gòu)?fù)制和粘貼技巧(摘自)1) 鼠標(biāo)移至想要復(fù)制內(nèi)容的開始 2) 用右手食指按下鼠標(biāo)左鍵 3) 向想要復(fù)制內(nèi)容的另一角拖動(dòng)鼠標(biāo),與Word中選取內(nèi)容的方法一樣 4) 內(nèi)容選取完畢后(所選內(nèi)容全部反顯),鼠標(biāo)左鍵
62、按住不動(dòng),用右手中指按鼠標(biāo)右鍵 5) 這時(shí),所選內(nèi)容會(huì)自動(dòng)復(fù)制到SQL*Plus環(huán)境的最后一行 Sql*plus中蘊(yùn)藏著好多技巧,如果掌握這些技巧,對(duì)于在oracle數(shù)據(jù)庫(kù)下進(jìn)行快速開發(fā)與有效維護(hù)數(shù)據(jù)庫(kù)都是有益的。 下面就接受一二, 1使用SQL*PLUS動(dòng)態(tài)生成批量腳本將spool與select命令結(jié)合起來使用,可以生成一個(gè)腳本,腳本中包含有可以批量執(zhí)行某一任務(wù)的語句。例1:生成一個(gè)腳本,刪除SCOTT用戶下的所有的
63、表:a. 創(chuàng)建gen_drop_table.sql文件,包含如下語句:SPOOL c:/drop_table.sql SELECT 'DROP TABLE '| table_name |'' FROM user_tables; SPOOL OFF b. 以SCOTT用戶登錄數(shù)據(jù)庫(kù)SQLPLUS > ./gen_dorp_table.sqlc. 在c盤根目錄下會(huì)生成文件drop_table.sql文件,包含刪除所有表的語句,如下所示:SQL>
64、 SELECT 'DROP TABLE '| table_name |'' FROM user_tables;
65、
66、 'DROPTABLE'|TABLE_NAME|'' - DROP TABLE DEPT;
67、; DROP TABLE EMP; &
68、#160; DROP TABLE PARENT;
69、 DROP TABLE STAT_VENDER_TEMP; DROP TABLE TABLE_FORUM; &
70、#160;
71、
72、 5 rows selected. SQL> SPOOL OFF d. 對(duì)生
73、成的drop_table.sql文件進(jìn)行編輯去掉不必要的部分,只留下drop table .語句e. 在scott用戶下運(yùn)行dorp_table.sql文件,刪除scott用戶下所有的表。SQLPLUS > c:/dorp_table.sql在上面的操作中,在生成的腳本文件中會(huì)有多余的字符,如運(yùn)行的sql語句,標(biāo)題,或返回的行數(shù),需要我們編輯該腳本后再運(yùn)行,給實(shí)際的操作帶來諸多不便。懶惰是人的本性,這促使我們用更簡(jiǎn)單的辦法來實(shí)現(xiàn)上面的任務(wù)。a. 創(chuàng)建gen_drop_table.sql文件,包含如下語句:
74、 set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term offset trims onset linesize 600set heading off set timing offset verify offset numwidth 38SPOOL c:/drop_table.sql SELECT 'DROP TABLE '| tabl
75、e_name |'' FROM user_tables; SPOOL OFF b. 以SCOTT用戶登錄數(shù)據(jù)庫(kù)SQLPLUS > ./gen_dorp_table.sqlc. 在c盤根目錄下會(huì)生成文件drop_table.sql文件,包含刪除所有表的語句,如下所示:DROP TABLE DEPT; &
76、#160; DROP TABLE EMP;
77、60; DROP TABLE PARENT;
78、160; DROP TABLE STAT_VENDER_TEMP; DROP TABLE TABLE_FORUM;
79、60; d. 在scott用戶下運(yùn)行dorp_table.sql文件,刪除scott用戶下所有的表。SQLPLUS > c:/dorp_table.sql2將一個(gè)表中的數(shù)據(jù)導(dǎo)出生成一個(gè)文本文件,列與列之間以”,”隔開set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term off
80、set trims onset linesize 600set heading off set timing offset verify offset numwidth 38SPOOL c:/drop_table.sql select DEPTNO | ',' | DNAME FROM DEPT; SPOOL OFF 將上面的內(nèi)容保存為一個(gè)文本文件后,以scott登錄,執(zhí)行該文件后顯示結(jié)果:10,ACCOUNTING 20,RESEARCH
81、60; 30,SALES 40,OPERATIONS 通過上面的兩個(gè)例子,我們可以將:set echo offset feedback offset newpage noneset pagesize 5000set linesize 500set verify offset pagesize 0set term offset trims onset linesize 600set heading off set timing offset verify offset numwidth 38SPOOL c:/具體的文件名 &
82、#160; 你要運(yùn)行的sql語句 SPOOL OFF作為一個(gè)模版,只要將必要的語句假如這個(gè)模版就可以了。在oracle的較新版本中,還可以用set colsep命令來實(shí)現(xiàn)上面的功能:SQL> set colsep ,SQL> select * from dept; 10,ACCOUNTING ,NEW YORK 20,RE
83、SEARCH ,DALLAS 30,SALES ,CHICAGO 40,OPERATIONS ,BOSTON 35,aa ,bb3動(dòng)態(tài)生成spool命令所需的文件名在我們上面的例子中,spool命令所需要的文件名都是固定的。有時(shí)我們需要每天spool一次,并且每次spool的文件名都不相同,如文件名包含當(dāng)天的日期,該如何實(shí)現(xiàn)呢?column dat1 new_value filename;selec
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康養(yǎng)生中心加盟管理合同4篇
- 2025年度美甲店美容護(hù)膚項(xiàng)目合作合同4篇
- 二零二五年度特種耐火材料采購(gòu)及技術(shù)服務(wù)合同4篇
- 2025版農(nóng)產(chǎn)品電商平臺(tái)客戶服務(wù)外包合同4篇
- 二零二五年度民政局離婚協(xié)議書模板版權(quán)授權(quán)協(xié)議4篇
- 二零二五年度智能機(jī)器人研發(fā)與應(yīng)用股權(quán)質(zhì)押擔(dān)保合同
- 二零二五年度戀愛雙方子女撫養(yǎng)權(quán)及探望權(quán)合同2篇
- 2025年度抹灰工程施工材料采購(gòu)合同范本4篇
- 2025年度農(nóng)場(chǎng)農(nóng)業(yè)產(chǎn)業(yè)鏈金融服務(wù)合同-@-1
- 二零二五年度高標(biāo)準(zhǔn)大棚建設(shè)與農(nóng)產(chǎn)品加工合作合同2篇
- 2024公路瀝青路面結(jié)構(gòu)內(nèi)部狀況三維探地雷達(dá)快速檢測(cè)規(guī)程
- 2024年高考真題-地理(河北卷) 含答案
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 2024年浙江省中考科學(xué)試卷
- 2024風(fēng)力發(fā)電葉片維保作業(yè)技術(shù)規(guī)范
- 《思想道德與法治》課程教學(xué)大綱
- 2024光儲(chǔ)充一體化系統(tǒng)解決方案
- 2024年全國(guó)高考新課標(biāo)卷物理真題(含答案)
- 處理后事授權(quán)委托書
- 食材配送服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 足療店?duì)I銷策劃方案
評(píng)論
0/150
提交評(píng)論