create or replace function Get_SeqId
return integer
is
  V_SEQID INTEGER;
begin
      update tab_autonumber set FLDCOUNTD = FLDCOUNTD + 1 where
      fldidnos = 'TB_BARSCANDATA' and FieldName = 'SEQID';
      select  FLDCOUNTD into V_SEQID  from tab_autonumber where
      fldidnos = 'TB_BARSCANDATA' and FieldName = 'SEQID';
      return V_SEQID;
end Get_SeqId;怎么在update tab_autonumber set FLDCOUNTD = FLDCOUNTD + 1 中会提示出错

解决方案 »

  1.   

     PL/SQL: ORA-00942: 表或视图不存在你确定 tab_autonumber 存在吗????????
      

  2.   

    这个语法肯定没问题  确定一点 你的FLDCOUNTD都是number类型吗?是不是还有什么其他类型或者空值的列?
      

  3.   

    INTEGER类型的,,,直接执行这个是成功的update tab_autonumber set FLDCOUNTD = FLDCOUNTD + 1 where
          fldidnos = 'TB_BARSCANDATA' and FieldName = 'SEQID';编译自订函数也成功,,但执行select 语句调用这个函数出错无法在查询中执行dml操作
      

  4.   

    我应该明白了,,,要INSERT,,试试
      

  5.   

    在Oracle自定义函数中不允许执行DML语句。