数据库中有多张表分别对应一个序列 对应的序列名称为表名+'_S'
比如表名为 T1 对应的序列是 T1_S
 现在我需要一个函数或过程 参数是表名 返回序列号,请帮忙解决为感!
另外一个帖子的链接:
http://community.csdn.net/Expert/topic/4628/4628216.xml?temp=.6457331

解决方案 »

  1.   

    PROCEDURE P_SETEST (pvc2TableName varchar2)
    As 
        a number;
        sql_text varchar2(100);
    Begin
         sql_text := ' select '||pvc2TableName ||'_S.nextval from dual';
        execute immediate sql_text1 into a;
    End;a就是你要的序列号
      

  2.   

    PROCEDURE P_SETEST (TableName in varchar2,seq out varchar2)
    As 
    Begin
      seq = substr(TableName ,instr(TableName ,'_')+1,length(TableName ));
         
    End;
      

  3.   

    我觉得水清大虾的代码有点问题,应该取序列的当前值才对吧
    PROCEDURE P_SETEST (pvc2TableName varchar2)
    As 
        a number;
        sql_text varchar2(100);
    Begin
         sql_text := ' select '||pvc2TableName ||'_S.currval from dual';
        execute immediate sql_text1 into a;
    End;a就是你要的序列号