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...