取某個表(my_tb)中某個欄位(item_no)的最大值加1的值。
(ITEM_NO 類型為VARCHAR2(2)).
返回值為varchar2

解决方案 »

  1.   

    FUNCTION xxx(item_no in varchar2,TB_NAME in varchar2)
        RETURN varchar2 IS
        V_ID varchar2(2);
      BEGIN
        EXECUTE IMMEDIATE  'select number(max('||item_no||'))+1 from '||TB_NAME INTO V_ID;
        RETURN V_ID;
      END;传入的参数就是字段名和表名
      

  2.   

    CREATE OR REPLACE FUNCTION GetItemNo(FieldName VARCHAR2,TableName VARCHAR2)
    RETURN VARCHAR2
    IS
    l_Sql VARCHAR2(200);
    l_ItemNo VARCHAR2(20);
    BEGIN
    l_Sql := 'SELECT MAX(' || FieldName || ') + 1   from ' || TableName;
    EXECUTE IMMEDIATE l_Sql  INTO l_ItemNo;
    RETURN l_ItemNo;
    END;