发票号码位数过多,提示数字溢出。

项目里通过存储将发票号码存入数据库,这是关于发票入库的存过。sql小白,希望大神帮忙看下。

procedure add_invoice_no(p_app_id in number,
p_invoice_code_id in number,
p_begin_no in varchar2,
p_end_no in varchar2,
p_counter out number,
p_taxpayer_no_id in number) is
v_cs_app cs.cs_app%rowtype;
v_begin_no number;
v_end_no number;
v_prefix varchar2(1) := '1';
v_cur_date date;
v_log_sql varchar2(2000);
v_ext_sql varchar2(100);--记录log日志额外的sql
begin
v_cur_date := sysdate;
v_begin_no := to_number(v_prefix || p_begin_no);
v_end_no := to_number(v_prefix || p_end_no);
p_counter := v_end_no - v_begin_no;
select * into v_cs_app from cs.cs_app ap where ap.app_id = p_app_id;
for invno in v_begin_no .. v_end_no loop
--发票号码入库
insert into bm.bm_invoice_no
(INVOICE_NO_ID,INVOICE_NO,OFFICE_ORG_ID,CORP_ORG_ID,STATUS,
CREATE_DATE,UPDATE_DATE,PRINT_DATE,EXPIRE_DATE,APP_ID,OPERATOR_ID,FLAG,
INVOICE_PRINT_HIS_ID,TAXPAYER_NO_ID,INVOICE_CODE_ID,REVOKE_STATUS,OWNER_OPERATOR_ID,
REL_INVOICE_NO_ID)
values
(sequser.bm_invoice_no_seq.nextval,substr(invno,2),0,v_cs_app.corp_org_id,1,
v_cur_date,v_cur_date,null,null,0,v_cs_app.operator_id,1,
0,p_taxpayer_no_id,p_invoice_code_id,1,0,
0);
end loop;

位数到10位的发票号码会提示数字溢出。
java.sql.SQLDataException: ORA-01426: 数字溢出
ORA-06512: 在 "BM.PKG_INVOICE_NO", line 45

检查字段长度允许几位数字