1.刪除表
select 'drop table ' || table_name || ' purge;'
from user_tables
where length(table_name) <= 4;
刪除帶約束的表
Drop table 表名 cascade constraints;
2.查詢view&同義詞
--說明:可以根據視圖的text_length值設定set long 的大小
set long 2000;
select * from user_views where view_name='MY_VIEW_NAME';
select * from all_views where view_name='MY_VIEW_NAME';
select * from user_synonyms;
3.臨時表
create global temporary table xay_temp as select * from xay;
on commit preserve rows/on commit delete rows
在Oracle中,可以創建以下兩種臨時表:
a 會話特有的臨時表:
create global temporary table () on commit preserve rows;
會話指定,當中斷會話時ORACLE將截斷表
b 事務特有的臨時表:
create global temporary table () on commit delete rows;
事務指定,每次提交後ORACLE將截斷表(刪除全部行)
c 說明
臨時表只在當前連接內有效
臨時表不建立索引,所以如果數據量比較大或進行多次查詢時,不推薦使用
數據處理比較複雜的時候時錶快,反之視圖快點
4.填加註釋
comment on table 表名 is '註釋';
comment on column 表名.列名 is '註釋';
5. ROWNUM
按設定排序的行的序號
SELECT * FROM emp WHERE ROWNUM < 10 ;
6. ROWID
返回行的物理地址
SELECT ROWID, ename FROM emp WHERE deptno = 20 ;
7. 複製表
create table table_name [logging|nologging] as subquery
8.刪除字段
alter table table_name drop column column_name [Cascade Constrains];
9.移動表空間(move tablespace)
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;
10.表改名:
rename xsb1 to xsb2;
11.改表的列名
ALTER TABLE UserName.TabName
RENAME COLUMN SourceColumn TO DestColumn
12.刪除列
ALTER TABLE UserName.TabName
SET UNUSED (ColumnName) CASCADE CONSTRAINTS
ALTER TABLE UserName.TabName
DROP (ColumnName) CASCADE CONSTRAINTS
13.失效OBJECT
COLUMN object_name FORMAT A30;
SELECT owner, object_type, object_name, status
FROM dba_objects
WHERE status = 'INVALID'
ORDER BY owner, object_type, object_name;
重新編譯:
SELECT 'ALTER '||OBJECT_TYPE||' '||OWNER||'.'||OBJECT_NAME||' COMPILE;',OWNER
FROM ALL_OBJECTS
WHERE STATUS='INVALID'
ORDER BY OWNER
14.如何查看某個表給哪些用戶授權
SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = 'table_name';
15.truncate表分區
alter table test truncate partition p20090531;
16.查表分區
select partition_name from DBA_TAB_PARTITIONS
where table_name ='table_name'
and table_owner='table_owner'
order by partition_name;