1. 執(zhí)行一個(gè)SQL腳本文件
復(fù)制代碼 代碼如下:
sqlplus user/pass@servicenamefile_name.sql
或
復(fù)制代碼 代碼如下:
SQL>start file_names
或
復(fù)制代碼 代碼如下:
SQL>@ file_name
我們可以將多條sql語(yǔ)句保存在一個(gè)文本文件中,這樣當(dāng)要執(zhí)行這個(gè)文件中的所有的sql語(yǔ)句時(shí),用上面的任一命令即可,這類似于dos中的批處理。
@與@@的區(qū)別是什么?
@等于start命令,用來運(yùn)行一個(gè)sql腳本文件。
@命令調(diào)用當(dāng)前目錄下的,或指定全路徑,或可以通過SQLPATH環(huán)境變量搜尋到的腳本文件。該命令使用是一般要指定要執(zhí)行的文件的全路徑,否則從缺省路徑(可用SQLPATH變量指定)下讀取指定的文件 www.111Cn.net。
@@用在sql腳本文件中,用來說明用@@執(zhí)行的sql腳本文件與@@所在的文件在同一目錄下,而不用指定要執(zhí)行sql腳本文件的全路徑,也不是從SQLPATH環(huán)境變量指定的路徑中尋找sql腳本文件,該命令一般用在腳本文件中。
如:在c:temp目錄下有文件start.sql和nest_start.sql,start.sql腳本文件的內(nèi)容為:
@@nest_start.sql – - 相當(dāng)于@ c:tempnest_start.sql
則我們?cè)趕ql*plus中,這樣執(zhí)行:
SQL> @ c:tempstart.sql
2. 重新運(yùn)行上一次運(yùn)行的sql語(yǔ)句
SQL>/
3. 將顯示的內(nèi)容輸出到指定文件
復(fù)制代碼 代碼如下:
SQL> SPOOL file_name
在屏幕上的所有內(nèi)容都輸入到該文件中,包括你輸入的sql語(yǔ)句。
通常情況下,我們使用SPOOL方法,將數(shù)據(jù)庫(kù)中的表導(dǎo)出為文本文件的時(shí)候會(huì)采用兩種方法,如下述:
方法一:采用以下格式腳本
set colsep ‘|'; –設(shè)置|為列分隔符
set trimspool on;
set linesize 120;
set pagesize 2000;
set newpage 1;
set heading off;
set term off;
set num 18;
set feedback off;
spool 路徑+文件名;
select * from tablename;
spool off;
方法二:采用以下腳本
set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool 路徑+文件名
select col1||','||col2||','||col3||','||col4||'..' from tablename;
spool off
附一些基本命令
1、得到數(shù)據(jù)庫(kù)名和創(chuàng)建日期
復(fù)制代碼 代碼如下:
SELECT name, created, log_mode, open_mode FROM v$database;
2、ORACLE數(shù)據(jù)庫(kù)的計(jì)算機(jī)的主機(jī)名,ORACLE數(shù)據(jù)庫(kù)的實(shí)例名及ORACLE數(shù)據(jù)庫(kù)管理系統(tǒng)的版本信息
復(fù)制代碼 代碼如下:
SELECT host_name, instance_name, version FROM v$instance;
3、為了知道oracle數(shù)據(jù)庫(kù)版本的一些特殊信息
復(fù)制代碼 代碼如下:
select * from v$version;
4、獲取控制文件名字
復(fù)制代碼 代碼如下:
select * from v$controlfile;
5、得到Oracle數(shù)據(jù)庫(kù)的重做日志配置信息
復(fù)制代碼 代碼如下:
SELECT group#, members, bytes, status, archived FROM v$log;
select GROUP#,MEMBER from v$logfile;
6、獲取oracle的每個(gè)重做日志(成員)文件所存放的具體位置
復(fù)制代碼 代碼如下:
select * from v$logfile;
7、知道ORACLE數(shù)據(jù)庫(kù)的備份和恢復(fù)策略和歸檔文件的具體位置
復(fù)制代碼 代碼如下:
archive log list
8、知道ORACLE數(shù)據(jù)庫(kù)中到底有多少表空間以及每個(gè)表空間的狀態(tài)
select tablespace_name, block_size, status, contents, logging from dba_tablespaces;
select tablespace_name, status from dba_tablespaces;
9、知道每個(gè)表空間存在哪個(gè)磁盤上以及文件的名字等信息
SELECT file_id, file_name, tablespace_name, status, bytes from dba_data_files;
select file_name, tablespace_name from dba_data_files;
10、知道Oracle數(shù)據(jù)庫(kù)系統(tǒng)上到底有多少用戶和都是什么時(shí)候創(chuàng)建的
select username,created from dba_users;
select username, DEFAULT_TABLESPACE from dba_users;
11、從控制文件中取出信息涉及到以下一些相關(guān)的命令
select * from v$archived
select * from v$archived_log
select * from v$backup
select * from v$database
select * from v$datafile
select * from v$log
select * from v$logfile
select * from v$loghist
select * from v$tablespace
select * from v$tempfile
12、控制文件由兩大部份組成:可重用的部份和不可重用的部分。可重用的部分的大小可用
CONTROL_FILE_RECORD_KEEP_TIME參數(shù)來控制,該參數(shù)的默認(rèn)值為7天,即可重用的部份的內(nèi)容保留7天,一周之后這部份的內(nèi)容可能被覆蓋??芍赜玫牟糠菔枪┗謴?fù)管理器來使用的,這部份的內(nèi)容可以自動(dòng)擴(kuò)展。Oracle數(shù)據(jù)庫(kù)管理員可以使用CREAT DATABASE或 CREAT CONTROLFILE語(yǔ)句中的下列關(guān)鍵字(參數(shù))來間接影響不可重用的部份的大?。?br />
MAXDATAFILES
MAXINSTANCES
MAXLOGFILES
MAXLOGHISTORY
MAXLOGMEMBERS
13、查看控制文件的配置
SELECT type, record_size, records_total, records_used FROM v$controlfile_record_section;
14、如果您的顯示被分成了兩部分,您需要使用類似于set pagesize 100的SQL*Plus命令先格式化輸出。有關(guān)的格式化輸出命令有以下這些:
record_size: 為每個(gè)記錄的字節(jié)數(shù)。
records_total:為該段所分配的記錄個(gè)數(shù)。
records_used:為該段所使用的記錄個(gè)數(shù)。
15、知道控制文件中的所有數(shù)據(jù)文件(DATAFILE),表空間(TABLESPACE),和重做日志(REDO LOG)所使用的記錄情況
SELECT type, record_size, records_total, records_used
FROM v$controlfile_record_section
WHERE type IN ( ‘DATAFILE', ‘TABLESPACE', ‘REDO LOG');
16、獲取控制文件名字
select value from v$parameter where name ='control_files';
或者:select * from v$controlfile
17、如何在一個(gè)已經(jīng)安裝的Oracle數(shù)據(jù)庫(kù)中添加或移動(dòng)控制文件呢?
以下是在一個(gè)已經(jīng)安裝的Oracle數(shù)據(jù)庫(kù)中添加或移動(dòng)控制文件的具體步驟:
a、利用數(shù)據(jù)字典v$controlfile來獲取現(xiàn)有控制文件名字。
b、正常關(guān)閉Oracle數(shù)據(jù)庫(kù)。
c、將新的控制文件名添加到參數(shù)文件的CONTROL_FILES參數(shù)中。
d、使用操作系統(tǒng)的復(fù)制命令將現(xiàn)有控制文件復(fù)制到指定位置。
e、重新啟動(dòng)Oracle數(shù)據(jù)庫(kù)。
f、利用數(shù)據(jù)字典v$controlfile來驗(yàn)證新的控制文件名字是否正確。
g、如果有誤重做上述操作,如果無(wú)誤刪除無(wú)用的舊控制文件。
注: 如果您使用了服務(wù)器初始化參數(shù)文件(SPFILE),您不能關(guān)閉Oracle數(shù)據(jù)庫(kù)而且應(yīng)該在第3步使用alter system set control_files的Oracle命令來改變控制文件的位置。
SQL> alter system set control_files =
‘D:Disk3CONTROL01.CTL',
‘D:Disk6CONTROL02.CTL',
‘D:Disk9CONTROL03.CTL' SCOPE=SPFILE;
18、由于控制文件是一個(gè)極其種要的文件,除了以上所說的將控制文件的多個(gè)副本存在不同的硬盤上的保護(hù)措施外,在數(shù)據(jù)庫(kù)的結(jié)構(gòu)變化之后,您應(yīng)立即對(duì)控制文件進(jìn)行備份。可以用Oracle命令來對(duì)控制文件進(jìn)行備份:
alter database backup controlfile to ‘D:backupcontrol.bak';
19、您也可將備份到一個(gè)追蹤文件中。該追蹤文件包含有重建控制文件所需的SQL語(yǔ)句??墒褂靡韵耂QL語(yǔ)句來產(chǎn)生這一追蹤文件:
alter database backup controlfile to trace;
20、正常關(guān)閉oracle命令
PS:oracle客戶端連接的文件配置:
oracle的目錄/network/ADMIN/tnsnames.ora
內(nèi)容:
MIMI(客戶端連接的名稱) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = NTDB.RUNNER)
)
)
修改表結(jié)構(gòu)
alter table m_gl_gls3_history add (aaaaa varchar2(20),bbbbb varchar2(10))
alter table m_gl_gls3_history modify (aaaaa varchar2(10))
--要改變表中的字段的類型或縮小字段長(zhǎng)度,該字段的所有記錄值必須為空。
--如果改字段存在記錄值,則該字段長(zhǎng)度只能擴(kuò)大,不能縮小。
alter table m_gl_gls3_history drop (aaaaa , bbbbb )
您可能感興趣的文章:- Oracle數(shù)據(jù)庫(kù)自動(dòng)備份腳本分享(超實(shí)用)
- Linux中Oracle服務(wù)啟動(dòng)和停止腳本與開機(jī)自啟動(dòng)
- Oracle自動(dòng)備份腳本
- Linux下通過腳本自動(dòng)備份Oracle數(shù)據(jù)庫(kù)并刪除指定天數(shù)前的備份
- oracle自動(dòng)巡檢腳本生成html報(bào)告的方法