create table project_manage(
productionid varchar2(20) not null,
name varchar2(20) not null,
remarks varchar2(50));
create sequence auto_add
start with 10000
increment by 10
nomaxvalue
nocache
create or replace trigger myproject
before insert on project_manage
for each row
begin
if (to_char(:new.productionid) is null) then
select auto_add.nextval into :new.productionid from dual;
end if;
end;
sql> insert into project_manage(name,remarks)
2 values(『三峽工程』,『已經竣工』);
1 row inserted
sql> insert into project_manage(name,remarks)
2 values(『貴成鐵路』,『馬上動工』);
1 row inserted
sql> insert into project_manage(name,remarks)
2 values(『昆明新建機場』,『在建中…』);
1 row inserted
新增資料時,沒有報錯,說明productionid成功新增了序列值,
因為我們定義表時約束了not null;
sql> select * from project_manage;
productionid name remarks
10000 三峽工程 已經竣工
10010 貴成鐵路 馬上動工
10020 昆明新建機場 在建中…
如我們所**,sequence的number型別的資料別轉換為了varchar2型別,
因為productionid這一列是左對齊的,如果樹資料型別的話它將右對齊;
sql> select 10010,to_char(『10010』) from dual;
10010 to_char('10010')
10010 10010
varchar和varchar2的區別
varchar是標準sql裡面的。varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於英文是乙個位元組,佔的記憶體小,varchar2都是佔兩個位元組。varchar對空串不處理,varchar2將空串當做null來處理。varchar存放固定長度的字串,最大...
varchar和varchar2的區別
varchar是標準sql裡面的。varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於數字,英文本元是乙個位元組,佔的記憶體小,varchar2一般情況下把所有字元都佔兩位元組處理。具體要看資料庫使用的字符集,比如gbk,漢字就會佔兩個位元組,英文1個,如果是...
varchar和varchar2的區別
varchar是標準sql裡面的 varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於數字,英文本元是乙個位元組,佔的記憶體小 varchar2一般情況下把所有字元都佔兩位元組處理。具體要看資料庫使用的字符集,比如gbk,漢字就會佔兩個位元組,英文1個,如果是...