分享Oracle9i中建立自增字段的最新辦法

2021-09-05 17:57:33 字數 1323 閱讀 2193

1、首先建立乙個建立自增字段的儲存過程

//written by sun zhenfang 20040903

create or replace procedure pr_createidentitycolumn

(tablename varchar2,columnname varchar2)

asstrsql varchar2(1000);

begin

strsql := 'create sequence seq_'||tablename||'

minvalue 1 maxvalue 999999999999999999

start with 1 increment by 1 nocache';

execute immediate strsql;

strsql := 'create or replace trigger trg_'||tablename||'

before insert on '||tablename||' for each row begin

select seq_'||tablename||'.nextval into :new.'||columnname||'

from dual; end;';

execute immediate strsql;

end;

2、oracle中執行動態sql時要顯示授權(即使該使用者擁有該相關許可權)

grant create any sequence to "username";

grant create any trigger to "username";

(注意:資料庫使用者名稱區分大小寫)

3、重新compile儲存過程pr_createidentitycolumn

4、搞定,下面我們就可以用這個儲存過程建立自增自段了。

5、呼叫儲存過程建立自增字段(note: 第乙個引數是表名,第二個引數為自增字段的名字)

exec pr_createidentitycolumn('sdspdept','deptid');

exec pr_createidentitycolumn('sdspuser','userid');

exec pr_createidentitycolumn('sdspsysrole','sysroleid');

exec pr_createidentitycolumn('sdspfp','sysfpid');

exec pr_createidentitycolumn('sdspphasemodel','phasemodelid');

exec pr_createidentitycolumn('sdspphase','phaseid');

分享Oracle9i中建立自增字段的最新辦法

很多人都知道在oracle中並沒有像其他資料庫中的自增欄位,那麼我們怎樣才能實現oracle的自增欄位功能呢?下面我們通過oracle中的sequence和trigger來實現此功能。1 首先建立乙個建立自增字段的儲存過程 written bysun zhenfang 20040903 create...

解除安裝Oracle 9i

1 停止所有oracle服務 2 刪除登錄檔中的所有關於oracle項 1 在hkey local machine software下,刪除oracle目錄 2 在hkey local machine system controlset001 services下,刪除所有oracle項 3 在hke...

oracle9i解除安裝

今天裝了oracle 9i,後來重灌遇到問題因為解除安裝未乾淨。幾經周折終於成功,現將解除安裝步驟供以後參考 1 停止服務 開啟 服務 然後停止所有oracle服務 2 刪除程式 3 刪除登錄檔中的所有關於oracle項 1 在hkey local machine software下,刪除oracl...