CREATE OR REPLACE FUNCTION HGS160B (
  FromYMD IN VARCHAR,
  ToYMD IN VARCHAR,
  JishiYear IN VARCHAR,
  ShikakuCDList IN VARCHAR,
  KoshuCD IN CHAR
) return NUMBER
IS
BEGIN
    mFromYMD VARCHAR(8);
    mToYMD VARCHAR(8);
    mJishiYear VARCHAR(4);
    mShikakuCDWhere VARCHAR(1000);
    mKoshuCD CHAR(1);
    mShikakuCD VARCHAR(10) := 'SHIKAKU_CD';
    mShutokuYMD VARCHAR(100);
    mShutokuFromYMD VARCHAR(8);
    
    CURSOR Ba_Cur_7 IS
      SELECT 
        T_2.SHUTOKU_YMD F_2_6
      FROM
        GS_KP_SHIKAKU_TBL T_2
      WHERE
        mShutokuYMD > FromYMD
    
  BEGIN
    
    mFromYMD := FromYMD;
     
    IF length(mFromYMD) = 8
    THEN
      --
      mShutokuYMD := 'T_2.SHUTOKU_YMD';
      mShutokuFromYMD := '20050202';
      --mFromYMD;
      
      
    ELSE
      --
      mShutokuYMD := '2';
      mShutokuFromYMD := '1';
      

解决方案 »

  1.   

    mShutokuYMD > FromYMD
    你这条件是不是有问题?哪个是字段名?
      

  2.   

    mShutokuYMD里边放的是字段名,我就是想在游标中用动态的条件
      

  3.   

    怎么两个begin
    第二个begin的declare呢?
    declare  
    CURSOR Ba_Cur_7(FromYMD number) IS
          SELECT 
            T_2.SHUTOKU_YMD F_2_6
          FROM
            GS_KP_SHIKAKU_TBL T_2
          WHERE
            mShutokuYMD > FromYMD
        
    BEGIN
    ……
      

  4.   

    也许明白你的意思:
    declare  
    CURSOR Ba_Cur_7(p_FromYMD VARCHAR) IS
          SELECT 
            T_2.SHUTOKU_YMD F_2_6
          FROM
            GS_KP_SHIKAKU_TBL T_2
          WHERE
            mShutokuYMD > p_FromYMD 
    begin
    for v_Ba_Cur_7 in Ba_Cur_7(FromYMD) loop
    .......
    end loop;
    ....
    end;
    你要的是否参数游标?