ORA-01403:no data found ORA-06512:at line 12

Q:今天执行存储过程突然报了这个错
在这里插入图片描述
存储过程很简单

declare
  maxdocno integer; --最大单证流水号
  currno  integer := 1; --初始条件
  makenum integer := 100;--造数据数量【变量】
  tBatNo  varchar2(1); --批次号
  tSysYY  varchar2(2); -- 系统年
  maxno varchar2(7); -- 版本最大流水
begin
  --目前版本表流水号不规范,先虚拟下版本表批次,用一个从未用过的新批次,防止与核销表冲突,例如9【变量】
  tBatNo:='9';
  --获取版本最大流水号
  select to_char(sysdate, 'yy'), t.max_number into tSysYY,maxno from t_doc_version_info t where t.doc_ver_code='11051100002' and t.org_flag='1';
  --计算生成流水号
  maxno := lpad(maxno, 7, 0);
  maxdocno := tSysYY || tBatNo || maxno;
  loop
    --插入数据,版本名称可以自定义,方便测试后,用这个字段清除数据
    insert into t_doc_num_scope (PK_DOC_NUM_SCOPE, FK_DOC_VER_CODE, DOC_VER_NAME, START_NUM, END_NUM, STA_VCH_CLS, STA_VCH, TAKE_NUM, TAKE_TM, SGN_END_TM, ORG_FLAG, CREATE_USER_ID, CREATE_TIME, MODIFY_USER_ID, MODIFY_TIME, ORG_ID, ROLE_ID, TAKER_ID, INVOICE_CODE, START_INVOICE, END_INVOICE, SHORT_CODE, STA_FLOW, STA_BACK, STA_ARCHV, STA_SPEC, STA_SPEC_RSN, STA_BUSS, STA_CARD, PRNT_TM, SEND_TM, RECV_TM, VERIF_TM, BACK_TM, ARCHV_TM, REDFLUSH_TM, STA_VCH_TM, STA_SPEC_RSN_TM, STA_OVERDUE, RATE_FLAG, IS_NEW_ORDER)
values (S_PK_DOC_NUM_SCOPE.nextval, '11051100002', 'HFJ测试数据', maxdocno+currno, maxdocno+currno, '1', '12', 1, sysdate, sysdate, '1', 'AB017257', sysdate, '', sysdate, '89', '8900000006', 'AB017257', '', null, null, 'PC0511', '0', '62', '72', '0', '0', '0', '0', sysdate, null, sysdate, null, null, null, null, sysdate, sysdate, '01', '0', '0');
   --参数递增 
    currno := currno + 1;
   --停止条件
    exit when currno > makenum;
  end loop;
  --更新版本表最大流水号
  update t_doc_version_info t set t.max_number=maxno+makenum where t.doc_ver_code='11051100002';
  commit;
end;


无非就是从版本表取最大流水号递增插入库存表

A:
ORA-01403:no data found
ORA-06512:at line 12
原因很明了,没查到数据, 错误行在12行

select to_char(sysdate, 'yy'), t.max_number into tSysYY,maxno from t_doc_version_info t where t.doc_ver_code='11051100002' and t.org_flag='1';

我要从版本表查max_number放到变量maxno ,版本表里没有查到数据所以报错了

,询问了下,原来数据库刷库了,我查的版本号11051100002已经不存在了,重新换个存在的版本号即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值