id主键是String问题?谢谢了
table A 的id是字符串,而且生成的规则是abc201109160001 (abc是固定的,20110916获取时间,0001流水号)
所以啊~,当我插入数据的时候,需要自己写一个java方法,让用户在添加一个表单时候,每次按照规则插入数据。
下一个月的时候,流水帐号又从0001开始:abc201110010001  
~------------------------
ZkSqNsrzgZb zgsqzb = new ZkSqNsrzgZb();	     
zgsqzb.setZgsqLsh("abc201109160001"); 我现在都是这样写死的 ~~~哭。。。
有那么大哥哥,大姐姐们帮个忙。谢谢了
------解决方案--------------------
建议触发器少用:
我一般只用触发器做日志,或者备份,很少做业务处理
表结构:
-- Create table
create table AUTONO
(
 targetnum CHAR(15) not null,
 sex       VARCHAR2(6),
 name      VARCHAR2(10)
)
tablespace USERS
 pctfree 10
 initrans 1
 maxtrans 255
 storage
 (
   initial 64K
   next 1M
   minextents 1
   maxextents unlimited
 );
-- Create/Recreate primary, unique and foreign key constraints  
alter table AUTONO
 add constraint TARGETNUM_PK primary key (TARGETNUM)
 using index  
 tablespace USERS
 pctfree 10
 initrans 2
 maxtrans 255
 storage
 (
   initial 64K
   next 1M
   minextents 1
   maxextents unlimited
 );			
create or replace trigger AutoNum
 before insert on autono 
 for each row
Declare
    sTempNo Varchar2(20) := '';
Begin
    Select nvl(substr(Trim(Max(t.targetnum)), -4, 4), 0) + 1
      Into sTempNo
      From autono t
     Where t.targetnum Like 'abc%'
       And substr(Trim(t.targetnum), -12, 8) =
           to_char(Sysdate, 'yyyymmdd');
    sTempNo        := substr('0000' || sTempNo, -4, 4);
    sTempNo        := 'abc' || to_char(Sysdate, 'yyyymmdd') || sTempNo;
    :new.targetnum := sTempNo;
End AutoNum;
测试语句:
insert into autono(sex,name) values('男','张三');
insert into autono(sex,name) values('女','李四');
insert into autono(sex,name) values('未确定','王五');
测试结果:
	abc201109240001	男	张三
	abc201109240002	女	李四
	abc201109240003	未确定	王五
	abc201109240004	男	张三
	abc201109240005	女	李四
	abc201109240006	未确定	王五