Oracle中常見的操作

2021-08-27 12:14:00 字數 4008 閱讀 5540

1.建立oracle表空間:

2.刪除oracle表空間:

示例:drop tablespace my_space including contents and datafiles;

3.檢視當前所有的表空間和表空間對應的資料檔案的位置:

select * from dba_tablespaces;--檢視當前所有的表空間名稱 

select * from dba_data_files;--檢視當前所有的資料檔案

select s.tablespace_name,t.file_name from dba_tablespaces s ,dba_data_files t where t.tablespace_name=s.tablespace_name;--檢視當前表空間對應的資料檔案位置。

表的重新命名

rename student to stud;

刪除表drop table stud cascade constraint;

刪除使用者

drop user myuser cascade;

要求myuser

如果連續三次登入失敗,則鎖定該使用者。

建立profile

create profile lock_accout limit

failed_login_attempts 3(次數)

password_lock_time 10;

(天數)

檢查系統是否啟用資源限制

show parameters resource_limit

如果未啟用資源限制,則應設定啟用資源限制

alter system set resource_limit=true

修改使用者

myuser

alter user myuser profile lock_accout

解鎖命令

alter user myuser2 account unlock

擴充套件內容

temporary tables臨時表

1簡介oracle資料庫除了可以儲存永久表外,還可以建立臨時表temporary tables。這些臨時表用來儲存乙個會話session的資料,

或者儲存在乙個事務中需要的資料。當會話退出或者使用者提交commit和回滾rollback事務的時候,臨時表的資料自動清空,

但是臨時表的結構以及元資料還儲存在使用者的資料字典中。

臨時表只在oracle8i以及以上產品中支援。

2詳細介紹

oracle臨時表分為 會話級臨時表和事務級臨時表。

會話級臨時表是指臨時表中的資料只在會話生命週期之中存在,當使用者退出會話結束的時候,oracle自動清除臨時表中資料。

事務級臨時表是指臨時表中的資料只在事務生命週期中存在。當乙個事務結束(commit or rollback),oracle自動清除臨時表中資料。

臨時表中的資料只對當前session有效,每個session都有自己的臨時資料,並且不能訪問其它session的臨時表中的資料。因此,

臨時表不需要dml鎖.當乙個會話結束(使用者正常退出 使用者不正常退出 oracle例項崩潰)或者乙個事務結束的時候,oracle對這個會話的

表執行 truncate 語句清空臨時表資料.但不會清空其它會話臨時表中的資料.

你可以索引臨時表和在臨時表基礎上建立檢視.同樣,建立在臨時表上的索引也是臨時的,也是只對當前會話或者事務有效.

臨時表可以擁有觸發器.

--on commit delete rows 說明臨時表是事務指定,每次提交後oracle將截斷表(刪除全部行)

--on commit preserve rows 說明臨時表是會話指定,當中斷會話時oracle將截斷表。

衝突的問題更本不用考慮.

臨時表只是儲存當前會話(session)用到的資料,資料只在事務或會話期間存在。

通過create global temporary table命令建立乙個臨時表,對於事務型別的臨時表,

資料只是在事務期間存在,對於會話型別的臨時表,資料在會話期間存在。

會話的資料對於當前會話私有。每個會話只能看到並修改自己的資料。dml鎖不會加到

臨時表的資料上。下面的語句控制行的存在性。

● on commit delete rows 表名行只是在事務期間可見

● on commit preserve rows 表名行在整個會話期間可見

可以對臨時表建立索引,檢視,出發器,可以用export和import工具匯入匯出表的

定義,但是不能匯出資料。表的定義對所有的會話可見。

3建立臨時表

臨時表的定義對所有會話session都是可見的,但是表中的資料只對當前的會話或者事務有效.

建立方法:

1) on commit delete rows 定義了建立事務級臨時表的方法.

create global temporary table admin_work_area

(startdate date,

enddate date,

class char(20))

on commit delete rows;

example:

sql> create global temporary table admin_work_area

2  (startdate date,

3  enddate date,

4  class char(20))

5  on commit delete rows;

sql> create table permernate( a number);

sql> insert into admin_work_area values(sysdate,sysdate,'temperary table');

sql> insert into permernate values(1);

sql> commit;

sql> select * from admin_work_area;

sql> select  * from permernate;a1

2)on commit preserve rows 定義了建立會話級臨時表的方法.

create global temporary table admin_work_area

(startdate date,

enddate date,

class char(20))

on commit preserve rows;

example:

會話1:

sql> drop table admin_work_area;

sql> create global temporary table admin_work_area

2  (startdate date,

3  enddate date,

4  class char(20))

5  on commit preserve rows;

sql> insert into permernate values(2);

sql> insert into admin_work_area values(sysdate,sysdate,'session temperary');

sql> commit;

sql> select * from permernate; a

----------12

sql> select * from admin_work_area;

startdate  enddate  class

---------- ---------- --------------------

17-1?? -03 17-1?? -03 session temperary

重建乙個會話2:

sql> select * from permernate; a

----------12

sql> select * from admin_work_area;

未選擇行.

會話2看不見會話1中臨時表的資料.

Oracle中常見的日期時間操作

1.返回當前日期 sysdate 功能 返回當前日期。引數 沒有引數,沒有括號 返回 日期 示例 select sysdate hz from dual 返回 2008 11 5 2.返回指定月數後的日期 add months d1,n1 功能 返回在日期d1基礎上再加n1個月後新的日期。引數 d1...

oracle常見單詞 Oracle中常見的英語單詞

fatal 重要的,致命的。常見於 root dido1 ps ef grep init.cssd root 2918 1 0 09 59 00 00 00 bin sh etc init.d init.cssd fatal dependencies 附屬的 diagnostic 診斷 常見於 ro...

Oracle中常見的資料庫操作

一 檢視修改連線數 select count from v process 當前連線數 select value from v parameter where name processes 允許最大連線數 alter system set processes 300 scope spfile 修改連...