Oracle筆記之 的CMD命令

啓動Oracle,在cmd模式下依次啓動:
net start oracleservice服務名
lsnrctl start  啓動監聽程序
關閉服務爲:
lsnrctl stop
net stop oracleservice服務名


1. Oracle安裝完成後的初始口令?
internal/oracle
sys/change_on_install
system/manager
scott/tiger
sysman/oem_temp

2. ORACLE9IAS WEB CACHE的初始默認用戶和密碼?
administrator/administrator

3. oracle 8.0.5怎麼創建數據庫?
用orainst。如果有motif界面,可以用orainst /m

4. oracle 8.1.7怎麼創建數據庫?
dbassist

5. oracle 9i 怎麼創建數據庫?
dbca

6. oracle中的裸設備指的是什麼?
裸設備就是繞過文件系統直接訪問的儲存空間

7. oracle如何區分 64-bit/32bit 版本???
$ sqlplus '/ AS SYSDBA'
SQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
With the Partitioning option
JServer Release 9.0.1.0.0 - Production
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
PL/SQL Release 9.0.1.0.0 - Production
CORE 9.0.1.0.0 Production
TNS for Solaris: Version 9.0.1.0.0 - Production
NLSRTL Version 9.0.1.0.0 - Production
SQL>

8. SVRMGR什麼意思?
svrmgrl,Server Manager.
9i下沒有,已經改爲用SQLPLUS了
sqlplus /nolog
變爲歸檔日誌型的

9. 請問如何分辨某個用戶是從哪臺機器登陸ORACLE的?
SELECT machine , terminal FROM V$SESSION;

10. 用什麼語句查詢字段呢?
desc table_name 可以查詢表的結構
select field_name,... from ... 可以查詢字段的值
select * from all_tables where table_name like '%'
select * from all_tab_columns where table_name='??'

11. 怎樣得到觸發器、過程、函數的創建腳本?
desc user_source
user_triggers

12. 怎樣計算一個表佔用的空間的大小?
select owner,table_name,
NUM_ROWS,
BLOCKS*AAA/1024/1024 "Size M",
EMPTY_BLOCKS,
LAST_ANALYZED
from dba_tables
where table_name='XXX';

Here: AAA is the value of db_block_size ;
XXX is the table name you want to check

13. 如何查看最大會話數?
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';
SQL>
SQL> show parameter processes

NAME TYPE VALUE
------------------------------------ ------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 4
log_archive_max_processes integer 1
processes integer 200

這裏爲200個用戶。
select * from v$license;
其中sessions_highwater紀錄曾經到達的最大會話數

14. 如何查看系統被鎖的事務時間?
select * from v$locked_object ;

15. 如何以archivelog的方式運行oracle。
init.ora
log_archive_start = true
RESTART DATABASE

16. 怎麼獲取有哪些用戶在使用數據庫
select username from v$session;

17. 數據表中的字段最大數是多少?
表或視圖中的最大列數爲 1000

18. 怎樣查得數據庫的SID ?
select name from v$database;
也可以直接查看 init.ora文件

19. 如何在Oracle服務器上通過SQLPLUS查看本機IP地址 ?
select sys_context('userenv','ip_address') from dual;
如果是登陸本機數據庫,只能返回127.0.0.1,呵呵

20. unix 下怎麼調整數據庫的時間?
su -root
date -u 08010000

21. 在ORACLE TABLE中如何抓取MEMO類型字段爲空的數據記錄?
select remark from oms_flowrec where trim(' ' from remark) is not null ;

22. 如何用BBB表的數據去更新AAA表的數據(有關聯的字段)
UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NO IS NOT NULL;

23. P4計算機安裝方法
將SYMCJIT.DLL改爲SYSMCJIT.OLD

24. 何查詢SERVER是不是OPS?
SELECT * FROM V$OPTION;
如果PARALLEL SERVER=TRUE則有OPS能

25. 何查詢每個用戶的權限?
SELECT * FROM DBA_SYS_PRIVS;

26. 如何將表移動表空間?
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;

27. 如何將索引移動表空間?
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;

28. 在LINUX,UNIX下如何啓動DBA STUDIO?
OEMAPP DBASTUDIO

29. 查詢鎖的狀況的對象有?
V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS ;
查詢鎖的表的方法:
SELECT S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')', S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;
30. 如何解鎖?
ALTER SYSTEM KILL SESSION ‘SID,SERIR#’;

31. SQLPLUS下如何修改編輯器?
DEFINE _EDITOR="<編輯器的完整路經>" -- 必須加上雙引號
來定義新的編輯器,也可以把這個寫在$ORACLE_HOME/sqlplus/admin/glogin.sql裏面使它永久有效。

32. ORACLE產生隨機函數是?
DBMS_RANDOM.RANDOM

33. LINUX下查詢磁盤競爭狀況命令?
Sar -d

33. LINUX下查詢CPU競爭狀況命令?
sar -r

34. 查詢當前用戶對象?
SELECT * FROM USER_OBJECTS;
SELECT * FROM DBA_SEGMENTS;

35. 如何獲取錯誤信息?
SELECT * FROM USER_ERRORS;

36. 如何獲取鏈接狀況?
SELECT * FROM DBA_DB_LINKS;

37. 查看數據庫字符狀況?
SELECT * FROM NLS_DATABASE_PARAMETERS;
SELECT * FROM V$NLS_PARAMETERS;

38. 查詢表空間信息?
SELECT * FROM DBA_DATA_FILES;

39. ORACLE的INTERAL用戶要口令?
修改 SQLNET.ORA
SQLNET.AUTHENTICATION_SERVICES=(NTS)

40. 出現JAVA.EXE的解決辦法?
一般是將ORACLEORAHOMEXIHTTPSERVER改成手工啓動可以的
X是8或9

41. 如何給表、列加註釋?
SQL>comment on table 表 is '表註釋';
註釋已創建。
SQL>comment on column 表.列 is '列註釋';
註釋已創建。
SQL> select * from user_tab_comments where comments is not null;

42. 如何查看各個表空間佔用磁盤情況?
SQL> col tablespace format a20
SQL> select
b.file_id 文件ID號,
b.tablespace_name 表空間名,
b.bytes 字節數,
(b.bytes-sum(nvl(a.bytes,0))) 已使用,
sum(nvl(a.bytes,0)) 剩餘空間,
sum(nvl(a.bytes,0))/(b.bytes)*100 剩餘百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id

43. 如把ORACLE設置爲MTS或專用模式?
#dispatchers="(PROTOCOL=TCP) (SERVICE=SIDXDB)"
加上就是MTS,註釋就是專用模式,SID是指你的實例名。

44. 如何才能得知系統當前的SCN號 ?
select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe;

45. 請問如何在ORACLE中取毫秒?
9i之前不支持,9i開始有timestamp.
9i可以用select systimestamp from dual;

46. 如何在字符串里加回車?
select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ;

47. 中文是如何排序的?
Oracle9i之前,中文是按照二進制編碼進行排序的。
在oracle9i中新增了按照拼音、部首、筆畫排序功能。設置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序
SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序
SCHINESE_PINYIN_M 按照拼音排序

48. Oracle8i中對象名可以用中文嗎?
可以

49. 如何改變WIN中SQL*Plus啓動選項?
SQL*PLUS自身的選項設置我們可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中設置。

50. 怎樣修改oracel數據庫的默認日期?
alter session set nls_date_format='yyyymmddhh24miss';
OR
可以在init.ora中加上一行
nls_date_format='yyyymmddhh24miss'

51. 如何將小表放入keep池中?
alter table xxx storage(buffer_pool keep);

52. 如何檢查是否安裝了某個patch?
check that oraInventory

53. 如何使select語句使查詢結果自動生成序號?
select rownum,COL from table;

54. 如何知道數據褲中某個表所在的tablespace?
select tablespace_name from user_tables where table_name='TEST';
select * from user_tables中有個字段TABLESPACE_NAME,(oracle);
select * from dba_segments where …;

55. 怎麼可以快速做一個和原表一樣的備份表?
create table new_table as (select * from old_table);

55. 怎麼在sqlplus下修改procedure?
select line,trim(text) t from user_source where name =’A’ order by line;

56. 怎樣解除PROCEDURE被意外鎖定?
alter system kill session ,把那個session給殺掉,不過你要先查出她的session id
or
把該過程重新改個名字就可以了。

57. SQL Reference是個什麼東西?
是一本sql的使用手冊,包括語法、函數等等,oracle官方網站的文檔中心有下載.

58. 如何查看數據庫的狀態?
unix下
ps -ef | grep ora
windows下
看服務是否起來
是否可以連上數據庫

59. 請問如何修改一張表的主鍵?
alter table aaa
drop constraint aaa_key ;
alter table aaa
add constraint aaa_key primary key(a1,b1) ;

60. 改變數據文件的大小?
用 ALTER DATABASE .... DATAFILE .... ;
手工改變數據文件的大小,對於原來的 數據文件有沒有損害。

61. 怎樣查看ORACLE中有哪些程序在運行之中?
查看v$sessions表

62. 怎麼可以看到數據庫有多少個tablespace?
select * from dba_tablespaces;

63. 如何修改oracle數據庫的用戶連接數?
修改initSID.ora,將process加大,重啓數據庫.

64. 如何查出一條記錄的最後更新時間?
可以用logminer 察看

65. 如何在PL/SQL中讀寫文件?
UTL_FILE包允許用戶通過PL/SQL讀寫操作系統文件。

66. 怎樣把“&”放入一條記錄中?
insert into a values (translate ('at{&}t','at{}','at'));

67. EXP 如何加QUERY參數?
EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS)
QUERY='"WHERE EMP_NO=\'S09394\'\" ﹔

68. 關於oracle8i支持簡體和繁體的字符集問題?
ZHS16GBK可以支

69. Data Guard是什麼軟件?
就是Standby的換代產品

70. 如何創建SPFILE?
SQL> connect / as sysdba
SQL> select * from v$version;
SQL> create pfile from spfile;
SQL> CREATE SPFILE FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora';

文件已創建。
SQL> CREATE SPFILE='E:\ora9i\database\SPFILEEYGLE.ORA' FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora';
文件已創建。

71. 內核參數的應用?
shmmax
含義:這個設置並不決定究竟Oracle數據庫或者操作系統使用多少物理內存,只決定了最多可以使用的內存數目。這個設置也不影響操作系統的內核資源。
設置方法:0.5*物理內存
例子:Set shmsys:shminfo_shmmax=10485760
shmmin
含義:共享內存的最小大小。
設置方法:一般都設置成爲1。
例子:Set shmsys:shminfo_shmmin=1:
shmmni
含義:系統中共享內存段的最大個數。
例子:Set shmsys:shminfo_shmmni=100
shmseg
含義:每個用戶進程可以使用的最多的共享內存段的數目。
例子:Set shmsys:shminfo_shmseg=20:
semmni
含義:系統中semaphore identifierer的最大個數。
設置方法:把這個變量的值設置爲這個系統上的所有Oracle的實例的init.ora中的最大的那個processes的那個值加10。
例子:Set semsys:seminfo_semmni=100
semmns
含義:系統中emaphores的最大個數。
設置方法:這個值可以通過以下方式計算得到:各個Oracle實例的initSID.ora裏邊的processes的值的總和(除去最大的Processes參數)+最大的那個Processes×2+10×Oracle實例的個數。
例子:Set semsys:seminfo_semmns=200
semmsl:
含義:一個set中semaphore的最大個數。
設置方法:設置成爲10+所有Oracle實例的InitSID.ora中最大的Processes的值。
例子:Set semsys:seminfo_semmsl=-200
72. 怎樣查看哪些用戶擁有SYSDBA、SYSOPER權限?
SQL>conn sys/change_on_install

SQL>select * from V_$PWFILE_USERS;

73. 如何單獨備份一個或多個表?
exp 用戶/密碼 tables=(表1,…,表2)

74. 如何單獨備份一個或多個用戶?
exp system/manager owner=(用戶1,用戶2,…,用戶n) file=導出文件

75. 如何對CLOB字段進行全文檢索?
SELECT * FROM A WHERE dbms_lob.instr(a.a,'K',1,1)>0;

76. 如何顯示當前連接用戶?
SHOW USER

77. 如何查看數據文件放置的路徑 ?
col file_name format a50
SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;

78. 如何查看現有回滾段及其狀態 ?
SQL> col segment format a30
SQL> SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS

79. 如何改變一個字段初始定義的Check範圍?
SQL> alter table xxx drop constraint constraint_name;
之後再創建新約束:
SQL> alter table xxx add constraint constraint_name check();

80. Oracle常用系統文件有哪些?
通過以下視圖顯示這些文件信息:v$database,v$datafile,v$logfile v$controlfile v$parameter;

81. 內連接INNER JOIN?
Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no;

82. 如何外連接?
Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);
Select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;

83. 如何執行腳本SQL文件?
SQL>@$PATH/filename.sql;

84. 如何快速清空一個大表?
SQL>truncate table table_name;

85. 如何查有多少個數據庫實例?
SQL>SELECT * FROM V$INSTANCE;

86. 如何查詢數據庫有多少表?
SQL>select * from all_tables;

87. 如何測試SQL語句執行所用的時間?
SQL>set timing on ;
SQL>select * from tablename;
88. CHR()的反函數是?
ASCII()
SELECT CHAR(65) FROM DUAL;
SELECT ASCII('A') FROM DUAL;

89. 字符串的連接
SELECT CONCAT(COL1,COL2) FROM TABLE ;
SELECT COL1||COL2 FROM TABLE ;

90. 怎麼把select出來的結果導到一個文本文件中?
SQL>SPOOL C:\ABCD.TXT;
SQL>select * from table;
SQL >spool off;

91. 怎樣估算SQL執行的I/O數 ?
SQL>SET AUTOTRACE ON ;
SQL>SELECT * FROM TABLE;
OR
SQL>SELECT * FROM v$filestat ;
可以查看IO數

92. 如何在sqlplus下改變字段大小?
alter table table_name modify (field_name varchar2(100));
改大行,改小不行(除非都是空的)

93. 如何查詢某天的數據?
select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');

94. sql 語句如何插入全年日期?
create table BSYEAR (d date);
insert into BSYEAR
select to_date('20030101','yyyymmdd')+rownum-1
from all_objects
where rownum <= to_char(to_date('20031231','yyyymmdd'),'ddd');

95. 如果修改表名?
alter table old_table_name rename to new_table_name;

96. 如何取得命令的返回狀態值?
sqlcode=0

97. 如何知道用戶擁有的權限?
SELECT * FROM dba_sys_privs ;

98. 從網上下載的ORACLE9I與市場上賣的標準版有什麼區別?
從功能上說沒有區別,只不過oracle公司有明文規定;從網站上下載的oracle產品不得用於 商業用途,否則侵權。

99. 怎樣判斷數據庫是運行在歸檔模式下還是運行在非歸檔模式下?
進入dbastudio,歷程--〉數據庫---〉歸檔查看。

100. sql>startup pfile和ifile,spfiled有什麼區別?
pfile就是Oracle傳統的初始化參數文件,文本格式的。
ifile類似於c語言裏的include,用於把另一個文件引入
spfile是9i裏新增的並且是默認的參數文件,二進制格式
startup後應該只可接pfile

101. 如何搜索出前N條記錄?
SELECT * FROM empLOYEE WHERE ROWNUM < n
ORDER BY empno;

102. 如何知道機器上的Oracle支持多少併發用戶數?
SQL>conn internal ;
SQL>show parameter processes ;

103. db_block_size可以修改嗎?
一般不可以﹐不建議這樣做的。

104. 如何統計兩個表的記錄總數?
select (select count(id) from aa)+(select count(id) from bb) 總數 from dual;

105. 怎樣用Sql語句實現查找一列中第N大值?
select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank = N;

106. 如何在給現有的日期加上2年?(
select add_months(sysdate,24) from dual;

107. USED_UBLK爲負值表示什麼意思?
It is "harmless".

108. Connect string是指什麼?
應該是tnsnames.ora中的服務名後面的內容

109. 怎樣擴大REDO LOG的大小?
建立一個臨時的redolog組,然後切換日誌,刪除以前的日誌,建立新的日誌。

110. tablespace 是否不能大於4G?
沒有限制.

111. 返回大於等於N的最小整數值?
SELECT CEIL(N) FROM DUAL;

112. 返回小於等於N的最小整數值?
SELECT FLOOR(N) FROM DUAL;

113. 返回當前月的最後一天?
SELECT LAST_DAY(SYSDATE) FROM DUAL;

114. 如何不同用戶間數據導入?
IMP SYSTEM/MANAGER FILE=AA.DMP FROMUSER=USER_OLD TOUSER=USER_NEW ROWS=Y INDEXES=Y ;

115. 如何找數據庫表的主鍵字段的名稱?
SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME';

116. 兩個結果集互加的函數?
SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;
SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW;
SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW;

117. 兩個結果集互減的函數?
SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;

118. 如何配置Sequence?
建sequence seq_custid
create sequence seq_custid start 1 incrememt by 1;
建表時:
create table cust
{ cust_id smallint not null,
...}
insert 時:
insert into table cust
values( seq_cust.nextval, ...)

日期的各部分的常用的的寫法
119>.取時間點的年份的寫法:
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;

120>.取時間點的月份的寫法:
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;

121>.取時間點的日的寫法:
SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;

122>.取時間點的時的寫法:
SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;

123>.取時間點的分的寫法:
SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;

124>.取時間點的秒的寫法:
SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;

125>.取時間點的日期的寫法:
SELECT TRUNC(SYSDATE) FROM DUAL;

126>.取時間點的時間的寫法:
SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;

127>.日期,時間形態變爲字符形態
SELECT TO_CHAR(SYSDATE) FROM DUAL;

128>.將字符串轉換成日期或時間形態:
SELECT TO_DATE('2003/08/01') FROM DUAL;

129>.返回參數的星期幾的寫法:
SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;

130>.返回參數一年中的第幾天的寫法:
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;

131>.返回午夜和參數中指定的時間值之間的秒數的寫法:
SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;

132>.返回參數中一年的第幾周的寫法:
SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;

虛擬字段
133. CURRVAL 和 nextval
爲表創建序列
CREATE SEQUENCE EMPSEQ ... ;
SELECT empseq.currval FROM DUAL ;
自動插入序列的數值
INSERT INTO emp
VALUES (empseq.nextval, 'LEWIS', 'CLERK',
7902, SYSDATE, 1200, NULL, 20) ;
134. ROWNUM
按設定排序的行的序號
SELECT * FROM emp WHERE ROWNUM < 10 ;
135. ROWID
返回行的物理地址
SELECT ROWID, ename FROM emp WHERE deptno = 20 ;
136. 將N秒轉換爲時分秒格式?
set serverout on
declare
N number := 1000000;
ret varchar2(100);
begin
ret := trunc(n/3600) || '小時' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分 "ss"秒"') ;
dbms_output.put_line(ret);
end;
137. 如何查詢做比較大的排序的進程?
SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#,
a.username, a.osuser, a.status
FROM v$session a,v$sort_usage b
WHERE a.saddr = b.session_addr
ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks ;
138. 如何查詢做比較大的排序的進程的SQL語句?
select /*+ ORDERED */ sql_text from v$sqltext a
where a.hash_value = (
select sql_hash_value from v$session b
where b.sid = &sid and b.serial# = &serial)
order by piece asc ;
139. 如何查找重複記錄?
SELECT * FROM TABLE_NAME
WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
140. 如何刪除重複記錄?
DELETE FROM TABLE_NAME
WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
141. 如何快速編譯所有視圖?
SQL >SPOOL VIEW1.SQL
SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
COMPILE;’ FROM TAB;
SQL >SPOOL OFF
然後執行VIEW1.SQL即可。
SQL >@VIEW1.SQL;
142. ORA-01555 SNAPSHOT TOO OLD的解決辦法
增加MINEXTENTS的值,增加區的大小,設置一個高的OPTIMAL值。
143. 事務要求的回滾段空間不夠,表現爲表空間用滿(ORA-01560錯誤),回滾段擴展到達參數 MAXEXTENTS的值(ORA-01628)的解決辦法.
向回滾段表空間添加文件或使已有的文件變大;增加MAXEXTENTS的值。
144. 如何加密ORACLE的存儲過程?
下列存儲過程內容放在AA.SQL文件中
create or replace procedure testCCB(i in number) as
begin
dbms_output.put_line('輸入參數是'||to_char(i));
end;
SQL>wrap iname=a.sql;
PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001
Copyright (c) Oracle Corporation 1993, 2000. All Rights Reserved.
Processing AA.sql to AA.plb
運行AA.plb
SQL> @AA.plb ;
145. 如何監控事例的等待?
select event,sum(decode(wait_Time,0,0,1)) "Prev",
sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
from v$session_Wait
group by event order by 4;
146. 如何回滾段的爭用情況?
select name, waits, gets, waits/gets "Ratio"
from v$rollstat C, v$rollname D
where C.usn = D.usn;
147. 如何監控表空間的 I/O 比例?
select B.tablespace_name name,B.file_name "file",A.phyrds pyr,
A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw
from v$filestat A, dba_data_files B
where A.file# = B.file_id
order by B.tablespace_name;
148. 如何監控文件系統的 I/O 比例?
select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name",
C.status, C.bytes, D.phyrds, D.phywrts
from v$datafile C, v$filestat D
where C.file# = D.file#;
149. 如何在某個用戶下找所有的索引?
select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
from user_ind_columns, user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = user_indexes.table_name
order by user_indexes.table_type, user_indexes.table_name,
user_indexes.index_name, column_position;
150. 如何監控 SGA 的命中率?
select a.value + b.value "logical_reads", c.value "phys_reads",
round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.statistic# = 38 and b.statistic# = 39
and c.statistic# = 40;
151. 如何監控 SGA 中字典緩衝區的命中率?
select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",
(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"
from v$rowcache
where gets+getmisses <>0
group by parameter, gets, getmisses;
152. 如何監控 SGA 中共享緩存區的命中率,應該小於1% ?
select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
sum(reloads)/sum(pins) *100 libcache
from v$librarycache;
select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"
from v$librarycache;
153. 如何顯示所有數據庫對象的類別和大小?
select count(name) num_instances ,type ,sum(source_size) source_size ,
sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size,
sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required
from dba_object_size
group by type order by 2;
154. 監控 SGA 中重做日誌緩存區的命中率,應該小於1%
SELECT name, gets, misses, immediate_gets, immediate_misses,
Decode(gets,0,0,misses/gets*100) ratio1,
Decode(immediate_gets+immediate_misses,0,0,
immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
FROM v$latch WHERE name IN ('redo allocation', 'redo copy');
155. 監控內存和硬盤的排序比率,最好使它小於 .10,增加 sort_area_size
SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts (disk)');

156. 如何監控當前數據庫誰在運行什麼SQL語句?
SELECT osuser, username, sql_text from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;
157. 如何監控字典緩衝區?
SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;
後者除以前者,此比率小於1%,接近0%爲好。
SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
FROM V$ROWCACHE

158. 監控 MTS
select busy/(busy+idle) "shared servers busy" from v$dispatcher;
此值大於0.5時,參數需加大
select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where type='dispatcher';
select count(*) from v$dispatcher;
select servers_highwater from v$mts;
servers_highwater接近mts_max_servers時,參數需加大
159. 如何知道當前用戶的ID號?
SQL>SHOW USER;
OR
SQL>select user from dual;
160. 如何查看碎片程度高的表?
SELECT segment_name table_name , COUNT(*) extents
FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name
HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);
162. 如何知道表在表空間中的存儲情況?
select segment_name,sum(bytes),count(*) ext_quan from dba_extents where
tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;
163. 如何知道索引在表空間中的存儲情況?
select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'
group by segment_name;
164、如何知道使用CPU多的用戶session?
11是cpu used by this session
select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;
165. 如何知道監聽器日誌文件?
以8I爲例
$ORACLE_HOME/NETWORK/LOG/LISTENER.LOG
166. 如何知道監聽器參數文件?
以8I爲例
$ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA
167. 如何知道TNS 連接文件?
以8I爲例
$ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA
168. 如何知道Sql*Net 環境文件?
以8I爲例
$ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA
169. 如何知道警告日誌文件?
以8I爲例
$ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG
170. 如何知道基本結構?
以8I爲例
$ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL
171. 如何知道建立數據字典視圖?
以8I爲例
$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL
172. 如何知道建立審計用數據字典視圖?
以8I爲例
$ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL
173. 如何知道建立快照用數據字典視圖?
以8I爲例
$ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL

本講主要講的是SQL語句的優化方法! 主要基於ORACLE9I的.
174. /*+ALL_ROWS*/
表明對語句塊選擇基於開銷的優化方法,並獲得最佳吞吐量,使資源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
175. /*+FIRST_ROWS*/
表明對語句塊選擇基於開銷的優化方法,並獲得最佳響應時間,使資源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
176. /*+CHOOSE*/
表明如果數據字典中有訪問表的統計信息,將基於開銷的優化方法,並獲得最佳的吞吐量;
表明如果數據字典中沒有訪問表的統計信息,將基於規則開銷的優化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
177. /*+RULE*/
表明對語句塊選擇基於規則的優化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
178. /*+FULL(TABLE)*/
表明對錶選擇全局掃描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='CCBZZP';
179. /*+ROWID(TABLE)*/
提示明確表明對指定表根據ROWID進行訪問.
例如:
SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
AND EMP_NO='CCBZZP';
180. /*+CLUSTER(TABLE)*/
提示明確表明對指定表選擇簇掃描的訪問方法,它只對簇對象有效.
例如:
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
181. /*+INDEX(TABLE INDEX_NAME)*/
表明對錶選擇索引的掃描方法.
例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M';
182. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明對錶選擇索引升序的掃描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='CCBZZP';
183. /*+INDEX_COMBINE*/
爲指定表選擇位圖訪問路經,如果INDEX_COMBINE中沒有提供作爲參數的索引,將選擇出位圖索引的
布爾組合方式.
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
WHERE SAL<5000000 AND HIREDATE<SYSDATE;
184. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明確命令優化器使用索引作爲訪問路徑.
例如:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
FROM BSEMPMS WHERE SAL<60000;
185. /*+INDEX_DESC(TABLE INDEX_NAME)*/
表明對錶選擇索引降序的掃描方法.
例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='CCBZZP';
186. /*+INDEX_FFS(TABLE INDEX_NAME)*/
對指定的表執行快速全索引掃描,而不是全表掃描的辦法.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';
187. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
提示明確進行執行規劃的選擇,將幾個單列索引的掃描合起來.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='CCBZZP' AND DPT_NO='TDC306';
188. /*+USE_CONCAT*/
對查詢中的WHERE後面的OR條件進行轉換爲UNION ALL的組合查詢.
例如:
SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';
189. /*+NO_EXPAND*/
對於WHERE後面的OR 或者IN-LIST的查詢語句,NO_EXPAND將阻止其基於優化器對其進行擴展.
例如:
SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';
190. /*+NOWRITE*/
禁止對查詢塊的查詢重寫操作.
191. /*+REWRITE*/
可以將視圖作爲參數.
192. /*+MERGE(TABLE)*/
能夠對視圖的各個查詢進行相應的合併.
例如:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;
193. /*+NO_MERGE(TABLE)*/
對於有可合併的視圖不再合併.
例如:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;

194. /*+ORDERED*/
根據表出現在FROM中的順序,ORDERED使ORACLE依此順序對其連接.
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C
WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
將指定表與嵌套的連接的行源進行連接,並把指定表作爲內部表.
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/
將指定的表與其它行源通過合併排序連接方式連接起來.
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/
將指定的表與其它行源通過哈希連接方式連接起來.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE
BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
強制與ORACLE所選擇的位置不同的表進行查詢執行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
199. /*+LEADING(TABLE)*/
將指定的表作爲連接次序中的首表.

200. /*+CACHE(TABLE)*/
當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩衝區緩存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
201. /*+NOCACHE(TABLE)*/
當進行全表掃描時,CACHE提示能夠將表的檢索塊放置在緩衝區緩存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
202. /*+APPEND*/
直接插入到表的最後,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;
203. /*+NOAPPEND*/
通過在插入語句生存期內停止並行模式來啓動常規插入.
insert /*+noappend*/ into test1 select * from test4 ;

ORACLE內部函數篇
204. 如何得到字符串的第一個字符的ASCII值?
ASCII(CHAR)
SELECT ASCII('ABCDE') FROM DUAL;
結果: 65
205. 如何得到數值N指定的字符?
CHR(N)
SELECT CHR(68) FROM DUAL;
結果: D
206. 如何連接兩個字符串?
CONCAT(CHAR1,CHAR2)
SELECT CONCAT('ABC','DEFGH') FROM DUAL;
結果: 'ABCDEFGH'
207. 如何將列中的數值代替爲字符串?
DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;
208. INITCAP(CHAR)
將字符串CHAR的第一個字符爲大寫,其餘爲小寫.
SELECT INITCAP('ABCDE') FROM DUAL;
209. LENGTH(CHAR)
取一字符串CHAR的長度.
SELECT LENGTH('ABCDE') FROM DUAL;
210. LOWER(CHAR)
將字符串CHAR全部變爲小寫.
SELECT LOWER('ABCDE') FROM DUAL;
211. LPAD(CHAR1,N,CHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其長度爲N.
SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
結果: '123ABCDEFG'

212. LTRIM(CHAR,SET)
從字符串CHAR的左邊移去字符串SET中的字符,直到第一個不是SET中的字符爲止.
SELECT ('CDEFG','CD') FROM DUAL;
結果: 'EFG'
213. NLS_INITCAP(CHAR)
取字符CHAR的第一個字符大寫,其餘字符爲小寫.
SELECT NLS_INITCAP('ABCDE') FROM DUAL;
214. NLS_LOWER(CHAR)
將字符串CHAR包括的字符全部小寫.
SELECT NLS_LOWER('AAAA') FROM DUAL;
215. NLS_UPPER(CHAR)
將字符串CHAR包括的字符全部大寫.
SELECT NLS_UPPER('AAAA') FROM DUAL;
216. REPLACE(CHAR1,CHAR2,CHAR3)
用字符串CHAR3代替每一個列值爲CHAR2的列,其結果放在CHAR1中.
SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;
217. RPAD(CHAR1,N,CHAR2)
用字符串CHAR2右填字符串CHAR1,使其長度爲N.
SELECT RPAD('234',8,'0') FROM DUAL;
218. RTRIM(CHAR,SET)
移去字符串CHAR右邊的字符串SET中的字符,直到最後一個不是SET中的字符爲止.
SELECT RTRIM('ABCDE','DE') FROM DUAL;
219. SUBSTR(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字爲一個字符的.
SELECT SUBSTR('ABCDE',2,3) FROM DUAL;
220. SUBSTRB(CHAR,M,N)
得到字符串CHAR從M處開始的N個字符. 雙字節字符,一個漢字爲二個字符的.
SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;
221. TRANSLATE(CHAR1,CHAR2,CHAR3)
將CHAR1中的CHAR2的部分用CHAR3代替.
SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM DUAL;
222. UPPER(CHAR)
將字符串CHAR全部爲大寫.
223. ADD_MONTHS(D,N)
將N個月增加到D日期.
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
224. LAST_DAY(D)
得到包含D日期的月份的最後的一天的日期.
SELECT LAST_DAY(SYSDATE) FROM DUAL;
225. MONTH_BETWEEN(D1,D2)
得到兩個日期之間的月數.
SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;
226. NEXT_DAY(D,CHAR)
得到比日期D晚的由CHAR命名的第一個週日的日期.
SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;
227. ROUNT(D,FMT)
得到按指定的模式FMT舍入到的最進的日期.
SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;
228. SYSDATE
得到當前系統的日期和時間.
SELECT SYSDATE FROM DUAL;
229. TO_CHAR(D,FMT)
將日期D轉換爲FMT的字符串.
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;
230. TO_DATE(CHAR,FMT)
將字符串CHAR按FMT的格式轉換爲日期.
SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;
231. ABS(N)
得到N的絕對值.
SELECT ABS(-6) FROM DUAL;
232. CEIL(N)
得到大於或等於N的最大整數.
SELECT CEIL(5.6) FROM DUAL;
233. COS(N)
得到N的餘弦值.
SELECT COS(1) FROM DUAL;
234. SIN(N)
得到N的正弦值.
SELECT SIN(1) FROM DUAL;
235. COSH(N)
得到N的雙曲餘弦值.
SELECT COSH(1) FROM DUAL;
236. EXP(N)
得到N的E的N次冪.
SELECT EXP(1) FROM DUAL;
237. FLOOR(N)
得到小於或等於N的最小整數.
SELECT FLOOR(5.6) FROM DUAL;
238. LN(N)
得到N的自然對數.
SELECT LN(1) FROM DUAL;
239. LOG(M,N)
得到以M爲底N的對數.
SELECT LOG(2,8) FROM DUAL;
240. MOD(M,N)
得到M除以N的餘數.
SELECT MOD(100,7) FROM DUAL;
241. POWER(M,N)
得到M的N冪.
SELECT POWER(4,3) FROM DUAL;
242. ROUND(N,M)
將N舍入到小數點後M位.
SELECT (78.87653,2) FROM DUAL;
243. SIGN(N)
當N<0時,得到-1;
當N>0時,得到1;
當N=0時,得到0;
SELECT SIGN(99) FROM DUAL;
244. SINH(N)
得到N的雙曲正弦值.
SELECT SINH(1) FROM DUAL;
245. SORT(N)
得到N的平方根,N>=0
SELECT SORT(9) FROM DUAL;
246. TAN(N)
得到N的正切值.
SELECT TAN(0) FROM DUAL;
247. TANH(N)
得到N的雙曲正切值.
SELECT TANH(0) FROM DUAL;
248. TRUNC(N,M)
得到在M位截斷的N的值.
SELECT TRUNC(7.7788,2) FROM DUAL;
249. COUNT()
計算滿足條件的記錄數.
SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';
250. MAX()
對指定的列求最大值.
SELECT MAX(COL1) FROM TABLE1;
251. MIN()
對指定的列求最小值.
SELECT MIN(COL1) FROM TABLE1;
252. AVG()
對指定的列求平均值.
SELECT AVG(COL1) FROM TABLE1;
253. SUM()
計算列的和.
SELECT SUM(COL1) FROM DUAL;
254. TO_NUMBER(CHAR)
將字符轉換爲數值.
SELECT TO_NUMBER('999') FROM DUAL;

ORACLE內部函數篇
255. CHARTOROWID(CHAR)
將包含外部語法ROWID的CHAR或VARCHAR2數值轉換爲內部的二進制語法,參數CHAR必須是包含外部語法的ROWID的18字符的字符串.
SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
NAME : LEIXUE
256. CONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)
CONVERT將字符串CHAR中的字符從SOURCE_CHAR_SET標識的字符集轉換爲由DEST_CHAR_SET標識的字符集
SELECT CONVERT('GroB','US7ASCII','WE8HP') 'CONVERSION' FROM PUBS;
CONVERSION: Gross
257. HEXTORAW(CHAR)
將包含十六進制的CHAR轉換爲一個RAW數值.
INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW('7D') FROM TEST;
258. RAWTOHEX(RAW)
將RAW數值轉換爲一個包含十六進制的CHAR值.
SELECT RAWTOHEX(RAW_COLUMN) 'CONVERSION' FROM BSEMPMS;
CONVERSION: 7D
259. ROWIDTOCHAR(ROWID)
將一個ROWID數值轉換爲VARCHAR2數據類型.
SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE '%BR1AAB%';
260. TO_MULTI_BYTE(CHAR)
將CHAR中的單字節轉換爲等價的多字節字符.
SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST;
261. TO_SINGLE_BYTE(CHAR)
將CHAR中的多字節轉換爲等價的單字節字符.
SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST;
262. TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS})
將文本TEXT按照指定的轉換方式轉換成數據庫字符集和民族字符集.
其中TEXT是待轉換的.
USING CHAR_CS參數轉換TEXT爲數據庫字符集,輸出數據類型是VARCHAR2.
USING NCHAR_CS參數轉換TEXT爲數據庫字符集,輸出數據類型是NVARCHAR2.
CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20));
INSERT INTO TEST VALUES('HI,N'BYE');
SELECT * FROM TEST;

263. DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH)
返回一個包含數據類型代碼,字節長度等內部表示信息的VARCHAR2值.返回結果是當前數據庫字符集,數據類型按照下面規定的內部數據類型的編碼作爲一個數字進行返回:
代碼 數據類型
0 VARCHAR2
1 NUMBER
8 LONG
12 DATE
23 RAW
24 LONG RAW
69 ROWID
96 CHAR
106 MSSLABEL
參數RETUEN_FORMAT指定按照下面的基數表示返回的數值.
RETURN_FORMAT RESULT
8 8進制
10 10進制
16 16進制
17 單字符表示
如果參數RETURN_FORMAT沒有指定,則按十進制表示返回.
如果參數START_POSITION和LENGTH被指定,則從START_POSITION開始的長爲LENGTH的字節將被返回,缺省是返回整數表示.
SELECT DUMP('ABC',1016) FROM TEST;
select dump(ename,8,3,2) 'example' from emp where name='ccbzzp';
264. empty_b|clob()
返回一個空的LOB定位符,用在初始化LOB變量,或用在INSERT及UPDATE聲明去初始化LOB列或將其屬性置爲空.
INSERT INTO TABLE1 VALUES(EMPTY_BLOB());
UPDATE TABLE1 SET CLOB_COL=EMPTY_BLOB();
265. BFILENAME('DIRECTORY','FILENAME')
返回一個BFILE定位符,相關的二進制LOB物理文件在服務器的文件系統上.目錄DIRECTORY是指在服務器的文件系統上實際搜索路徑全名的別名. FILENAME是指服務器的文件系統的文件名.
INSERT INTO FILE_TAB VALUES(BFILENAME('LOB_DIR','IMAGE1.GIF'));

266. GREATEST(EXPR,EXPR,...)
GREATEST返回參數的最大值.
SELECT GREATEST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;
267. LEAST(EXPR,EXPR,...)
LEAST返回參數的最小值.
SELECT LEAST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;

268. NLS_CHARSET_DECL_LEN(BYTECNT,CSID)
返回一個NCHAR列的寬度.
SELECT NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EEFDFDF')) FROM TABLE1;
269. NLS_CHARSET_ID(TEXT)
返回相應於NLS字符集名字的NLS字符集ID數.
SELECT NLS_CHARSET_D('JADFDFFDF') FROM TABLE1;
270. NLS_CHARSET_NAME(N)
返回相應於ID數N的NLS字符集名稱.
SELECT NLS_CHARSET_NAME(2) FROM TABLE1;
271. NVL(EXPR1,EXPR2)
若EXPR1是NULL,則返回EXPR2,否則返回EXPR1.
SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROM TABLE1;
272. UID
返回唯一標識當前數據庫用戶的整數.
SELECT UID FROM TABLE1;
273. USER
用VARCHAR2數據類型返回當前ORACLE用戶的名稱.
SELECT USER,UID FROM TABLE1;
274. USERENV(OPTION)
返回當前的會話信息.
OPTION='ISDBA'若當前是DBA角色,則爲TRUE,否則FALSE.
OPTION='LANGUAGE'返回數據庫的字符集.
OPTION='SESSIONID'爲當前會話標識符.
OPTION='ENTRYID'返回可審計的會話標識符.
OPTION='LANG'返回會話語言名稱的ISO簡記.
OPTION='INSTANCE'返回當前的實例.
SELECT USERENV('LANGUAGE') FROM DUAL;
275. VSIZE(EXPR)
返回EXPR內部表示的字節數.
SELECT NAME,VSIZE(NAME) FROM TABLE1;
276. DEREF(E)
返回參數E的對象引用.
SELECT DEREF(C2) FROM TABLE1;
277. REFTOHEX(R)
將參數R轉換爲16進制.
SELECT REFTOHEX(C2) FROM TABLE1;
278. MAKE_REF(TABLE,KEY,KEY...)
通過把給定的鍵作爲主鍵來創建給定視圖對象中一行的引用.
CREATE TYPE T1 AS OBJECT(A NUMBER,B NUMBER);
CREATE TABLE TB1(C1 NUMBER,C2 NUMBER,PRIMARY KEY(C1,C2));
CREATE VIEW V1 OF T1 WITH OBJECT OID(A,B) AS SELECT * FROM TB1;
SELECT MAKE_REF(V1,1,3) FROM PUBS;
279. STDDEV(DISTINCT|ALL X)
STDDEV給出一組行值的標準差.
SELECT STDDEV(SALARY) AS EXAMPLE FROM EMPLOYEE;
280. VARIANCE(DISTINCT|ALL X)
VARIANCE返回一組行中所有VALUE的方差.
SELECT VARIANCE(SALARY) AS EXAMPLE FROM EMPLOYEE;

9I管理的V$視圖。

281. V$ACCESS

顯示當前被鎖定的數據庫中的對象及正在訪問他們的會話.

282. V$ACTIVE_INSTANCES

爲當前安裝的數據庫中出現的所有實例建立從實例名到實例號的映射.

283. V$ACTIVE_SESS_POOL_MTH

所有活動的會話池資源分配方法.

284. V$AQ

當前數據庫中的隊列的統計量.

285. V$ARCHIVE

歸檔所需的重做日誌文件中的信息.

286. V$ARCHIVE_DEST

當前實例的所有歸檔日誌目的文件及它們的當前值,模式,狀態.

287. V$ARCHIVE_PROCESSES

爲一個實例提供不同的ARCH進程狀態的信息.

288. V$ARCHIVE_LOG

控制文件中的歸檔日誌信息.

289. V$BACKUP

所有聯機數據文件的備份狀態.

290. V$BACKUP_ASYNC_IO

從控制文件中顯示備份集的信息.

291. V$BACKUP_CORRUPTION

從控制文件中顯示數據文件備份中有關損壞的信息.

292. V$BACKUP_DATAFILE

從控制文件中顯示備份數據文件和備份控制文件的信息.

293. V$BACKUP_DEVICE

顯示關於支持備份設備的信息.

294. V$BACKUP_PIECE

從控制文件中顯示備份塊的信息.

295. V$BACKUP_REDOLOG

從控制文件中顯示關於備份集中歸檔日誌的信息.

296. V$BACKUP_SET

從控制文件中顯示備份集的信息.

297. V$BACKUP_SYNC_IO

從控制文件中顯示備份集的信息.

298. V$BGPROCESS

描述後臺進程.

299. V$BH

是9I的實時應用集羣視圖.爲系統全局區中的每一個緩衝區給出了狀態和探查次數.

300. V$BSP

顯示用在緩存中塊服務器後臺進程上的統計信息.

301. V$BUFFER_POOL

顯示實例緩衝池的信息.

302. V$BUFFER_POOL_STATISTICS

顯示實例緩衝池的信息.

303. V$CACHE

包含當前實例的SGA中的每一個塊的頭部信息.

304. V$CACHE_LOCK

包含當前實例的SGA中的每一個塊的頭部信息. 和V$CACHE非常相似,

除特使平臺鎖管理器標識符號不同外.

305. V$CACHE_TRANSFER

除了只顯示那些被探查了至少一次的塊的信息外,和V$CACHE功能相同.

306. V$CIRCUIT

包含關於虛電路的信息,是用戶通過調度程序和服務器到數據庫的所有連接.

307. V$CLASS_PING

顯示每一個塊類中被探查塊的數目.

308. V$COMPATIBILITY

顯示數據庫實例使用的特徵,可以阻止數據庫回到早期的版本中去.

309. V$COMPATSEG

顯示數據庫實例使用的永久性特徵,可以阻止數據庫回到早期的版本中去.

310. V$CONTEXT

列出當前對話的設置屬性.

311. V$CONTROLFILE

列出控制文件的名稱.

312. V$CONTROLFILE_RECORD_SECTION

顯示控制文件記錄部分的信息.

313. V$COPY_CORRUPTION

顯示控制文件中數據文件損壞的信息.

314. V$CR_BLOCK_SERVER

顯示用在緩存中塊服務器後臺進程上的統計信息.

315. V$DATABASE

包含控制文件中數據庫的信息.

316. V$DATAFILE

包含控制文件中數據庫文件的信息.

317. V$DATAFILE_COPY

包含控制文件中數據庫文件副本的信息.

318. V$DATAFILE_HEADER

顯示數據文件頭部的數據文件信息.

319. V$DB_CACHE_ADVICE

根據緩存的大小估計出物理讀的數量.

320. V$DB_OBJECT_CACHE

緩存在庫緩存中的數據庫對象.

321. V$DB_PIPES

顯示實例中的共享池當前描繪的管道.

322. V$DBFILE

列出組成數據庫的所有數據文件.

323. V$DBLINK

查詢會話所打開的所有數據庫連接.

324. V$DELETED_OBJECT

顯示控制文件中被刪除歸檔日誌.

325. V$DISPATCHER

提供調度進程的信息.

326. V$DISPATCHER_RATE

爲調度進程提供優質提供速率統計量.

327. V$DLM_ALL_LOCKS

列出當前所有鎖的信息.

328. V$DLM_CONVERT_LOCAL

本地鎖轉換操作所消耗的時間.

329. V$DLM_CONVERT_REMOTE

遠程鎖轉換操作所消耗的時間.

330. V$DLM_LATCH

它是過時的,參見V$LATCH

331. V$DLM_LOCKS

這些是鎖管理器已知的被阻塞或阻塞其他對象的鎖信息.

332. V$DLM_MISC

顯示多種DLM統計量.

333. V$DLM_RESS

顯示當前鎖管理器已知的全部資源的信息.

334. V$ENABLEDPRIVE

顯示被授予的特權.

335. V$ENQUEUE_LOCK

顯示排隊對象所擁有的全部鎖.

336. V$EVENT_NAME

包含等待事件的信息.

337. V$EXECUTION

顯示並行執行中的信息.

338. V$FALSE_PING

可能得到探查失敗的緩衝區.

339. V$FAST_START_SERVERS

執行並行操作事務恢復的所有從屬操作的信息.

340. V$FAST_START_TRANSACTIONS

恢復中的事務進展信息.

341. V$FILE_CACHE_TRANSFER

顯示每個數據文件中探查的塊的數量.

342. V$FILE_PING

顯示每個數據文件被探查的塊數目.

343. V$FILESTAT

包含文件關於讀/寫統計量信息.

344. V$FIXED_TABLE

顯示數據庫中所有動態性能表和視圖及導出表.

345. V$FIXED_VIEW_DEFINITION

顯示所有固定視圖的定義.

346. V$GC_ELEMENTS_WITH_COLLISIONS

可以找到保護多緩存的鎖.

347. V$GES_BLOCKING_ENQUEUE

這些是鎖管理器已知的被阻塞或阻塞其他對象的鎖信息.

348. V$GES_CONVERT_LOCAL

本地鎖轉換操作所消耗的時間.

349. V$GES_CONVERT_REMOTE

遠程鎖轉換操作所消耗的時間.

350. V$GES_ENQUEUE

顯示當前鎖管理員知道的所有的鎖.

351. V$GES_LATCH

參見V$LATCH

352. V$GES_RESOURCE

顯示當前鎖管理器已知的全部資源的信息.

353. V$GES_STATISTICS

顯示多種DLM統計量.

354. V$GLOBAL_BLOCKED_LOCKS

顯示全局塊鎖.

355. V$GLOBAL_TRANSACTION
356. V$HS_AGENT

標識當前運行在一個給定的主機上的HS代理的集合.

357. V$HS_SESSION

ORACLE服務器打開的HS會話集.

358. V$INDEXED_FIXED_COLUMN

顯示建立索引的動態性能表中的列(X$表).

359. V$INSTANCE

顯示當前實例的狀態.

360. V$INSTANCE_RECOVERY

用來監視執行用戶指定恢復讀次數的限制機制.

361. V$LATCH

爲非雙親簡易鎖列出統計量.

362. V$LATCH_CHILDREN

關於子簡易鎖的統計量.

363. V$LATCH_MISSES

試圖獲得一個簡易鎖失敗的統計量.

364. V$LATCH_PARENT

包含關於雙親簡易鎖的統計量.

365. V$LATCHHOLDER

當前簡易鎖持有者的信息.

366. V$LATCHNAME

包含關於顯示在V$LATCH中的簡易鎖的解碼簡易鎖名字的信息.

367. V$LIBRARYCACHE

關於高速緩存性能和活動的統計量.

368. V$LICENSE

許可證限制的信息.

369. V$LOADCSTAT

包含在一個直接裝載執行過程中所編譯的SQL*LOADER統計量.

370. V$LOCK

當前ORACLE所持有的鎖.

371. V$LOCK_ACTIVITY

顯示當前實例的DLM鎖操作活動.

372. V$LOCK_ELEMENT

每一個被緩存使用的PCM鎖在V$LOCK_ELEMENTS中都有一個條目.

373. V$LOCKED_OBJECT

列出每個事務所獲得的全部鎖.

374. V$LOCK_WITH_COLLISIONS

可以查詢出保護多緩衝區的鎖.

375. V$LOG

控制文件中日誌文件的信息.

376. V$LOG_HISTORY

控制文件中日誌文件的歷史信息.

377. V$LOGFILE

包含重做日誌文件的信息.

378. V$LOGHIST

控制文件中日誌文件的日誌歷史信息.

379. V$LOGMNR_CONTENTS

日誌歷史信息.

380. V$LOGMNR_DICTIONARY

日誌歷史信息.

381. V$LOGMNR_LOGS

日誌信息.

382. V$LOGMNR_PARAMETERS

日誌信息.

383. V$MTS

包含調節多線程的服務器的信息.

384. V$MYSTAT

當前會話的統計量.

385. V$NLS_PARAMETERS

當前NLS參數信息.

386. V$NLS_VALID_VALUES

列出所有NLS參數的有效值.

387. V$OBJECT_DEPENDENCY

能夠通過當前裝載在共享池中的包,過程或遊標來決定依賴哪一個對象.

388. V$OBJECT_USAGE

來監視索引的使用.

389. V$OBSOLETE_PARAMETER

列出陳舊的參數.

390. V$OFFINE_RANGE

顯示控制文件中數據文件的脫機信息.

391. V$OPEN_CURSOR

列出每一個會話當前打開的和解析的遊標.

392. V$OPTION

列出ORACLE服務安裝的狀況.

393. V$PARALLEL_DEGREE_LIMIT_MTH

顯示所有有效的並行度限制資源分配的方法.

394. V$PARAMETER

列出關於初始化參數的信息.

395. V$PARAMETER2

列出了當前影響會話的參數和參數值.

396. V$PGASTAT

列出ORACLE內存使用統計.

397. V$PING

與V$CACHE一樣.

398. V$PQ_SESSTAT

列出並行查詢會話的統計信息.

399. V$PQ_SLAVE

一個實例上每個活動並行執行服務器的統計量.

400. V$PQ_SYSSTAT

列出並行查詢的系統的統計量.

401. V$PQ_TQSTAT

包含並行執行操作上的統計量.幫助在一個查詢中測定不平衡的問題.

402. V$PROCESS

包含關於當前活動進程的信息.

403. V$PROXY_ARCHIVEDLOG

包含歸檔日誌備份文件的描述信息,這些備份文件帶有一個稱爲PROXY副本的新特徵.

404. V$PROXY_DATAFILE

包含數據文件和控制文件備份的描述信息,這些備份文件帶有一個稱爲PROXY副本的新特徵.

405. V$PWFILE_USERS

列出被授予SYSDBA和SYSOPER特權的用戶.

406. V$PX_PROCESS

包含正在運行並行操作的會話的信息.

407. V$PX_PROCESS_SYSSTAT

包含正在運行並行操作的會話的信息.

408. V$PX_SESSION

包含正在運行並行操作的會話的信息.

409. V$PX_SESSTAT

包含正在運行並行操作的會話的信息.

410. V$QUEUE

包含多線程消息隊列的信息.

411. V$QUEUEING_MTH

顯示所有可用的查詢資源分配方法.

412. V$RECOVER_FILE

顯示需要介質恢復的文件狀態.

413. V$RECOVERY_FILE_STATUS

包含對每個恢復命令的每一數據文件的一行信息.

414. V$RECOVERY_LOG

列出需要完成介質恢復的歸檔日誌的信息.這個信息來自V$LOG_HISTORY

415. V$RECOVERY_PROCESS

能夠用來跟蹤數據庫恢復操作,以便他們不會被終止執行.

也用來估算進程中完成這個操作所需的時間.

416. V$RECOVERY_STATUS

包含當前恢復進程的統計量.

417. V$REQDIST

列出MTS調度程序請求次數的直方圖的統計量.

418. V$RESERVED_WORDS

給出PL/SQL編譯器所使用的關鍵字的列表.

419. V$RESOURCE

包含資源名和地址信息.

420. V$RESOURCE_LIMIT

顯示系統資源的全局資源使用的信息.

421. V$ROLLNAME

列出所有聯機回滾段的信息.

422. V$ROLLSTAT

包含回滾段的統計量.

423. V$ROWCACHE

顯示活動數據字典的統計量.

424. V$ROWCACHE_PARENT

顯示數據字典中所有雙親對象的信息.

425. V$ROWCACHE_SUBORDINATE

顯示數據字典中從屬對象的信息.

426. V$RSRC_CONSUMER_GROUP

顯示與當前活動資源消費者用戶組相關聯的數據.

427. V$RSRC_CONSUMER_GROUP_CPU_MTH

爲資源消費者用戶組顯示所有可用的資源的分配方法.

428. V$RSRC_PLAN

顯示當前所有活動資源方案的名稱.

429. V$RSRC_PLAN_CPU_MTH

顯示所有用於資源方案的可用CPU資源分配方法.

430. V$SESS_IO

爲每個用戶會話列出I/O統計.

431. V$SESSION

列出當前每一個會話的會話信息.

432. V$SESSION_CONNECT_INFO

顯示當前會話的網絡連接的信息.

433. V$SESSION_CURSOR_CACHE

顯示當前會話的遊標用法的信息.

434. V$SESSION_EVENT

列出一個會話在等待一個事件的信息.

435. V$SESSION_LONGOPS

顯示一個長時間運行操作的狀態.

436. V$SESSION_OBJECT_CACHE

顯示本地服務器上當前用戶對話的對象高速緩存的統計量.

437. V$SESSION_WAIT

列出正在等待的活動會話的資源或事件.

438. V$SESSTAT

列出用戶會話統計量.

439. V$SGA

包含系統全局區的總統計量.

440. V$SGASTAT

包含系統全局區的詳細信息.

441. V$SHARED_POOL_RESERVED

列出能幫助你調節共享池中保留池和空間的統計量.

442. V$SHARED_SERVER

包含共享服務器進程的信息.

443. V$SHARED_SERVER_MONITOR

包含調試共享服務器進程的信息.

444. V$SORT_SEGMENT

包含一個給定實例中每一個排序段的信息.

445. V$SPPARAMETER

列出SPFILE的內容.

446. V$SQL

列出SQL共享區的統計量.

447. V$SQL_BIND_DATA

如果數據在服務器中可用,它將對查詢這個視圖的會話所擁有的每個遊標中的每一個不同的連接變量,

顯示客戶端發送的實際連接數據.

448. V$SQL_BIND_METADATA

對查詢這個視圖的會話所擁有的每個遊標中的每一個不同的連接變量,顯示客戶端提供的連接元數據.

449. V$SQL_CURSOR

顯示與查詢這個視圖的會話相關的每一個遊標的DEBUG信息.

450. V$SQL_PLAN

包含裝載到庫緩存中每個子游標的執行計劃信息.

451. V$SQL_SHARED_CURSOR

爲啥一個特定的子游標%C

1、如何單獨備份一個或多個用戶:
D:\>exp scott/tiger file=導出文件
D:\>exp system/manager owner=(用戶1,用戶2,…,用戶n) file=導出文件
2、如何單獨備份一個或多個表:
D:\>exp 用戶/密碼 tables=表
D:\>exp 用戶/密碼 tables=(表1,…,表2)
D:\>exp system/manager tables=(用戶.表)
D:\>exp system/manager tables=(用戶1.表1,用戶2.表2)
3、如何導入指定表
D:\>exp scott/tiger file=a.dmp
D:\>imp test/test fromuser=scott tables=emp file=a.dmp
D:\>imp test/test tables=dept file=a.dmp
(說明:如果導出用戶沒有DBA權限,則導入用戶可以不用指定fromuser、touser參數
如果導出用戶擁有DBA權限,則導入用戶也必須擁有DBA權限)
4、如何給表、列加註釋
SQL>comment on table 表 is '表註釋';
註釋已創建。
SQL>comment on column 表.列 is '列註釋';
註釋已創建。
SQL> select * from user_tab_comments where comments is not null;
SQL> select * from user_col_comments where comments is not null;

5、
查看當前用戶下有什麼對象(表、視圖、同義詞、快照)
SQL> select * from tab;
查看錶結構
SQL> describe 表名
簡寫以上命令
SQL> desc 表名
6、
DDL、數據定義語言:create、alter、drop、truncate(創建、修改結構、刪除、截斷)(其他:rename)
DML、數據操縱語言:insert、delete、select、update(增、刪、查、改)
DCL、數據控制語言:grant、revoke(授權、回收)、set role
事務控制:commit、rollback、savepoint(其他:lock table、set constraint(s)、set transaction)
審計控制:audit、noaudit
系統控制:alter system
會話控制:alter session
其他語句:comment(添加註釋)、explain plan、analyze(收集統計)、validate、call
7、
1)、查看當前所有對象

SQL> select * from tab;

2)、建一個和a表結構一樣的空表

SQL> create table b as select * from a where 1=2;

SQL> create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;

3)、察看數據庫的大小,和空間使用情況

SQL> col tablespace format a20
SQL> select b.file_id  文件ID,
  b.tablespace_name  表空間,
  b.file_name     物理文件名,
  b.bytes       總字節數,
  (b.bytes-sum(nvl(a.bytes,0)))   已使用,
  sum(nvl(a.bytes,0))        剩餘,
  sum(nvl(a.bytes,0))/(b.bytes)*100 剩餘百分比
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes
  order by b.tablespace_name
  /
  dba_free_space --表空間剩餘空%

刪除表:
drop table 表名

導入:
drop

imp username/password@表名 orcl

導出:
exp user/pass@服務名l

插入字段:
alter table *** add ZD varchar2(20) default 0 not null;
comment on colum **.ZD is '說明';

(1)用客戶端連接到數據庫,執行select * from v$instance
查看version項

(2)select * from product_component_version

(3)或查詢V$VERSION查看組件級信息

ORACLE9I最初的系統管理員和密碼

SYS CHANGE_ON_INSTALL
SYSTEM MANAGER

實現方法:
1、 開始->設置->控制面板->管理工具->服務
停止所有Oracle服務。

2、 開始->程序->Oracle - OraHome81->Oracle Installation Products->
Universal Installer
卸裝所有Oracle產品,但Universal Installer本身不能被刪除

5、 運行regedit,選擇HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del鍵刪除這個入口。

6、 運行regedit,選擇HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滾動
這個列表,刪除所有Oracle入口。

7、 運行regedit,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,
刪除所有Oracle入口。

8、 開始->設置->控制面板->系統->高級->環境變量
刪除環境變量CLASSPATH和PATH中有關Oracle的設定

9、 從桌面上、STARTUP(啓動)組、程序菜單中,刪除所有有關Oracle的組和圖標

10、 刪除\Program Files\Oracle目錄

11、 重新啓動計算機,重起後才能完全刪除Oracle所在目錄

12、 刪除與Oracle有關的文件,選擇Oracle所在的缺省目錄C:\Oracle,刪除這個入
口目錄及所有子目錄,並從Windows 2000目錄(一般爲C:\WINNT)下刪除以下文
件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。

13、 WIN.INI文件中若有[ORACLE]的標記段,刪除該段

14、 如有必要,刪除所有Oracle相關的ODBC的DSN

15、 到事件查看器中,刪除Oracle相關的日誌

說明:
如果有個別DLL文件無法刪除的情況,則不用理會,重新啓動,開始新的安裝,
安裝時,選擇一個新的目錄,則,安裝完畢並重新啓動後,老的目錄及文件就可以刪除掉了

ORA-01536 超出表空間限制

alter user username quota unlimited on dbname


Oracle自動備份
Windows環境

寫一個批處理文件oracle.bat,加到任務計劃中,文件名根據時間自動命名,注意以下命令必須保持在一行內,內容如下:
exp user/pass@name buffer=4096000 file=D:\backup\backup%date:~12,13%.DMP log=D:\backup\backup%date:~12,13%.log

全局數據庫導出只需加參數full=y

-----------------------------------------------
exp參數:
  關鍵字  說明(默認)
  ----------------------------------------------
  USERID  用戶名/口令
  FULL  導出整個文件 (N)
  BUFFER  數據緩衝區的大小
  OWNER  所有者用戶名列表
  FILE  輸出文件 (EXPDAT.DMP)
  TABLES  表名列表
  COMPRESS 導入一個範圍 (Y)
  RECORDLENGTH IO 記錄的長度
  GRANTS  導出權限 (Y)
  INCTYPE  增量導出類型
  INDEXES  導出索引 (Y)
  RECORD  跟蹤增量導出 (Y)
  ROWS  導出數據行 (Y)
  PARFILE  參數文件名
  CONSTRAINTS 導出限制 (Y)
  CONSISTENT 交叉表一致性
  LOG  屏幕輸出的日誌文件
  STATISTICS 分析對象 (ESTIMATE)
  DIRECT  直接路徑 (N)
  TRIGGERS 導出觸發器 (Y)
  FEEDBACK 顯示每 x 行 (0) 的進度
  FILESIZE 各轉儲文件的最大尺寸
  QUERY  選定導出表子集的子句
  
  imp參數:
  關鍵字  說明(默認)
  ----------------------------------------------
  USERID  用戶名/口令
  FULL  導入整個文件 (N)
  BUFFER  數據緩衝區大小
  FROMUSER 所有人用戶名列表
  FILE  輸入文件 (EXPDAT.DMP)
  TOUSER  用戶名列表
  SHOW  只列出文件內容 (N)
  TABLES  表名列表
  IGNORE  忽略創建錯誤 (N)
  RECORDLENGTH IO 記錄的長度
  GRANTS  導入權限 (Y)
  INCTYPE  增量導入類型
  INDEXES  導入索引 (Y)
  COMMIT  提交數組插入 (N)
  ROWS  導入數據行 (Y)
  PARFILE  參數文件名
  LOG  屏幕輸出的日誌文件
  CONSTRAINTS 導入限制 (Y)
  DESTROY  覆蓋表空間數據文件 (N)
  INDEXFILE 將表/索引信息寫入指定的文件
  SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
  ANALYZE  執行轉儲文件中的 ANALYZE 語句 (Y)
  FEEDBACK 顯示每 x 行 (0) 的進度
  TOID_NOVALIDATE 跳過指定類型 id 的校驗
  FILESIZE 各轉儲文件的最大尺寸
  RECALCULATE_STATISTICS 重新計算統計值 (N)

修改計算機名稱後,oracle所有服務全部都啓動不了。
建議不要隨意修改計算機名稱,因爲修改計算機名稱後,要修改很多oracle的配置,麻煩的要死。
記錄之。。。

我原來的計算機名爲:thinkpad-x61
修改後的計算機名稱爲:yinchong.mapbar.com

首先解決OracleDBConsole*服務。
在cmd窗口運行命令“emctl start dbconsole”,出現下面信息:

C:\Documents and Settings\yinchong>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://thinkpad-x61:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsolemap 服
務正在啓動 .
OracleDBConsolemap 服務無法啓動。

系統出錯。

發生系統錯誤 3。

系統找不到指定的路徑。


注意紅色部分的連接爲你修改之前的計算機名稱,所以提示你係統找不到制定的路徑。
可以來修改相應的配置文件來解決,但是太麻煩。可以用下面方法解決之:
在cmd窗口運行命令:“emca -repos recreate”


C:\Documents and Settings\yinchong>emca -repos recreate

EMCA 開始於 2007-12-12 10:22:31
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下信息:
數據庫 SID: map
監聽程序端口號: 1521
SYS 用戶的口令:
SYSMAN 用戶的口令:

是否繼續? [yes(Y)/no(N)]: y
2007-12-12 10:22:47 oracle.sysman.emcp.EMConfig perform
信息: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\map\emca
_2007-12-12_10-22-31-上午.log。
2007-12-12 10:22:48 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)...
2007-12-12 10:24:02 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功刪除資料檔案庫
2007-12-12 10:24:02 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在創建 EM 資料檔案庫 (此操作可能需要一段時間)...
2007-12-12 10:26:08 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功創建資料檔案庫
已成功完成 Enterprise Manager 的配置

EMCA 結束於 2007-12-12 10:26:08

OK.!


"OracleOraDb10g_home1TNSListener"和“OracleService*”服務按一下操作:

修改“D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN”目錄下的listener.ora和tnsnames.ora兩個配置文件
將原來的計算機改成現在的計算機名或者localhost。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章