全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2473
推到 Plurk!
推到 Facebook!

oracle 是否有開欄位時是否有編號自動新增功能

尚未結案
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-14 09:38:44 IP:210.243.xxx.xxx 未訂閱
oracle 是否有跟SQL Server IDENTITY (1, 1) 等欄位設定的功能? 會把無輸入的資料自動累加.. Vincent wei
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-14 10:32:17 IP:211.74.xxx.xxx 未訂閱
建一個新的 Sequence, named SEQ1    select SEQ1.CURRVAL FROM TABLE  // 現在數字 select SEQ1.NEXTVAL FROM TABLE  // 數字+1    另一種 SELECT ROWNUM, COLUMN FROM TABLE //ROWNUM會自動編號    ~悠遊法國號~
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-14 16:43:17 IP:210.243.xxx.xxx 未訂閱
我是建立了一個sequence . 他是為自動加1 .. 可是..我要跟某個Table 連在一起. 當我不輸入資料時他會自動 1 我是寫了一個 Tigger 但是系統說不行? Why? tigger如下 Create Tigger T_Account2 Before Insert On M_Account2 for each row begin M_Account2.D_Key=S_Account2.NextVal end
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-14 17:15:31 IP:211.76.xxx.xxx 未訂閱
引言: 我是建立了一個sequence . 他是為自動加1 .. 可是..我要跟某個Table 連在一起. 當我不輸入資料時他會自動 1 我是寫了一個 Tigger 但是系統說不行? Why? tigger如下 Create Tigger T_Account2 Before Insert On M_Account2 for each row begin M_Account2.D_Key=S_Account2.NextVal end
create or replace trigger Test before insert on mytab for each row declare --- local variables here begin if :new.a1 is null then select seq1.nextval into :new.a1 from dual; end if; end Test;
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-15 09:39:11 IP:210.243.xxx.xxx 未訂閱
我照大哥的方式,把我的Tigger改了一下. 但是他一樣還是不會自動的增加. 是不是我還有寫錯的地方. from dual 是做什麼用的呢? create or replace trigger T_Account2 before insert on M_Account2 for each row declare begin if :New.D_Key is null then select s_Account2.nextval into :New.D_Key from dual end if end
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-15 10:38:08 IP:211.76.xxx.xxx 未訂閱
引言: 我照大哥的方式,把我的Tigger改了一下. 但是他一樣還是不會自動的增加. 是不是我還有寫錯的地方. from dual 是做什麼用的呢? create or replace trigger T_Account2 before insert on M_Account2 for each row declare begin if :New.D_Key is null then select s_Account2.nextval into :New.D_Key from dual end if end
1. 確定 Trigger 有編進 Oracle 2. 用 SQL Plus 直接下 SQL 寫資料進 Table, SQL>insert into M_Account2 ( a1, a2 ) values ( null, 'TEST' ); SQL>commit; 3.Dual 是 Oracle 的虛擬Table.
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-16 16:17:45 IP:210.243.xxx.xxx 未訂閱
會出現下面的錯誤訊息~ SQL> insert into M_Account2 values (null,'1',1,1); insert into M_Account2 values (null,'1',1,1) * ERROR 在行 1: ORA-04098: 觸發程式 'PROMAX.T_ACCOUNT2' 無效且無法重新驗證
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-16 17:45:26 IP:211.76.xxx.xxx 未訂閱
引言: 會出現下面的錯誤訊息~ SQL> insert into M_Account2 values (null,'1',1,1); insert into M_Account2 values (null,'1',1,1) * ERROR 在行 1: ORA-04098: 觸發程式 'PROMAX.T_ACCOUNT2' 無效且無法重新驗證
請先確定 Trigger 都沒寫錯, 且正確編進 Oralce. 你的 Trigger 有錯, 雖然被 Compile 進 Oracle, 可是狀態是 Invalid 的, 所以寫資料進 Table 觸發 Trigger 時, 會有這個錯誤訊息, 在 SQL Plus 下 , 下 Show Error 看寫的 Trigger 錯誤在那裏.
weiliching
初階會員


發表:53
回覆:78
積分:31
註冊:2003-12-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-18 15:12:15 IP:210.243.xxx.xxx 未訂閱
以下是我的Tigger CREATE TRIGGER PROMAX.T_ACCOUNT2 BEFORE INSERT ON PROMAX.M_ACCOUNT2 FOR EACH ROW declare begin if :New.D_Key is null then select s_Account2.nextval into :New.D_Key from dual end if end 這是M_Account2 Table CREATE TABLE PROMAX.M_ACCOUNT2 ( D_KEY NUMBER(10, 0) NOT NULL, M_NO CHAR(7) NOT NULL, M_KEY NUMBER(10, 0), M_GET NUMBER(10, 0) ) 我在Sql plus 裡打Show error 他說 SQL> show error 沒有任何錯誤 為何會這樣呢? 令外我要由SQL plus 去看所有Tigger的名字..要如何去看呢? Vincent wei
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-18 21:20:41 IP:211.76.xxx.xxx 未訂閱
直接用你給的 Table Schema 開了 Table 後, 我用自己機子上的Oracle編譯你給的 Trigger, 狀況如下: 列出所有權限 Access 的 Trigger (狀態有錯) : SQL>select OBJECT_NAME, STATUS from sys.user_objects where object_type = 'TRIGGER' and STATUS = 'INVALID ';
系統時間:2024-06-29 14:42:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!