CREATE OR REPLACE FUNCTION getpa(as_ZBBBM VARCHAR2)
  RETURN VARCHAR2
  IS
  pastr VARCHAR2(4000);
BEGIN
  FOR cur IN (select COLUMN_NAME  from user_tab_columns where   user_tab_columns.column_name not in ('E00001','E00002') and user_tab_columns.table_name  like '%'||as_ZBBBM||'%') LOOP
  pastr := pastr||cur.COLUMN_NAME||',';
  END LOOP;
    RETURN pastr;
END;错误提示:
FUNCTION SYSTEM.GETPA 编译错误错误:PLS-00103: 出现符号 ""在需要下列之一时:
        begin case declare exit for
          goto if loop mod null pragma raise return select update while
          with <an identifier> <a double-quoted delimited-identifier>
          <a bind variable> << close current delete fetch lock insert
          open rollback savepoint set sql execute commit forall merge
          <a single-quoted SQL string> pipe
行:5
文本:  pastr := pastr||cur.COLUMN_NAME||',';
大虾们帮帮忙哈,比较急....谢谢大虾 我在线的!!!帮帮忙哈

解决方案 »

  1.   

    CREATE OR REPLACE FUNCTION getpa(as_ZBBBM VARCHAR2)
      RETURN VARCHAR2
    IS
      pastr VARCHAR2(4000);
    BEGIN
      pastr := '';
      FOR cur IN (select COLUMN_NAME from user_tab_columns 
           where user_tab_columns.column_name not in ('E00001','E00002') 
     and user_tab_columns.table_name like '%'||as_ZBBBM||'%') LOOP
      pastr := pastr||cur.COLUMN_NAME||',';
      END LOOP;
      RETURN pastr;
    END;
    /
      

  2.   

    在执行块中的begin与for 之间加个 pastr:=''; --赋初值