Oracle 學習小記 040720

2021-09-30 02:21:32 字數 1916 閱讀 6693

2. 建立資料庫使用者時,resource許可權使得使用者可以建立資料庫物件,否則該使用者建立任何資料庫

物件時都會報錯:ora-01031。

3. 對於主外來鍵,主鍵刪除時有三種選擇:

(1)如果有引用它的外來鍵記錄存在,不允許刪除,這是預設情況(不指定on delete子句就是

這種情況)。

(2)如果有引用它的外來鍵記錄存在,刪除主表記錄及相應的從表記錄:on delete cascade。

(3)如果有引用它的外來鍵記錄存在,刪除主表記錄,設定表外鍵值為空:on delete set null

4. 建立表的時候,對於主鍵和唯一約束,oracle會自動建立乙個索引,索引名字由系統自動生成。

5. 索引段空間不會被重用,因此,索引的鍵值經過多次的insert,update,delete之後,空間利用效率會變

低,以下**用於檢查乙個索引的空間利用率:

analyze index idx_name validate structure;

select name,del_lf_rows,lf_rows,

round((del_lf_rows/(lf_rows+0.0000000001))*100) "freg percent" from index_stats;

如果索引的葉子行的碎片超過10%,考慮對索引進行重建:

alter index idx_name rebuild;

notes:index_stats只存放最後一次analyze index ... validate structure的結果。

6. 檢視所引用的基本發生變化時,檢視會變得無效,此時需要修改或重新編譯檢視:

alter view view_name compile;

檢視又稱為虛表,它並不實際儲存資料,因此它能幫助提高查詢速度,在生成報表時依賴於檢視

並不是明智的選擇,它能做的只是構造一些固定的查詢,使複雜的查詢語句看起來清晰一些。

檢視最主要的用途是用來限制使用者對資料的訪問。

7. 同義詞可以使得訪問另乙個使用者的物件,就像訪問自己的物件一樣。

以下為建立乙個同義詞的語句:

-- 首先將相應的許可權賦給另外乙個使用者

grant select,update,delete,insert on table1 to user_b;

-- 建立同義詞

create synonym table1 for user_a.table1;

-- 現在user_b訪問user_a.table1可以用如下語句:

select count(*) from table1;

建立以上同義詞的前提是user_b中沒有與table1同名的物件。

如果user_a和user_b位於不同的主機上,這時候還需要借助乙個資料庫鏈結,它是跨越不同數

據庫伺服器的橋梁。

-- 建立資料庫鏈結

create database link dblink_name connect to service_name using user_name

identified by password;

-- 建立同義詞

create synonym table1 for user_a.table1@dblink_name;

8. 觸發器的**不宜太長,整個觸發器作為乙個事務,不能在觸發器中新增commit或rollback

語句。9. 資料遷移

1>. sql server與oracle之間的資料遷移:

將oracle資料服務建成乙個odbc資料來源,在sql server伺服器上針對這個資料來源進行資料

匯入匯出。可能會有一些自動的資料轉換過程,這個要注意觀察一下。

2>. 將作業系統檔案形式的資料匯入oracle:

使用oracle自帶的工具:sqlldr

sqlldr userid/password control=controlfile.ctl

Oracle儲存過程小記

oracle儲存過程小記 dual 在oracle中,我們有時候會需要判斷乙個字串裡邊是否包含有某乙個串 首先,oracle為我們提供了instr這個函式 instr string1,string2 start position nth appearance 引數分析 string1,源字串,要在此...

iBatis學習小記

1.注意sqlmap.config檔案的sqlmap資源的順序 由於ibatis在初始化時,會將所有的資源檔案,按配置的順序讀入,如果資源的順序錯了,會引發以下異常。this sql map does not contain an resultmap named codenode.codetype ...

STL學習小記

2009 05 09 17 04 387人閱讀收藏 舉報stl standard template libarary 主要提供了三類工具 容器container,迭代器iterato,演算法algorithm.stl提供了兩類容器 序列容器 以線性序列方式組織物件 關聯容器 用關聯的鍵把物件組織在一...