title: ORA-00933: SQL command not properly ended ORA-06512:
body: <p>What is wrong with this ,
  I get this error </p>
  
  <pre><code>OLE DB provider "OraOLEDB.Oracle" for linked server "hades" returned message "ORA-00933: SQL command not properly ended
  ORA-06512: at "SAAP.EDI", line 1416".
  OLE DB provider "OraOLEDB.Oracle" for linked server "hades" returned message "ORA-00933: SQL command not properly ended
  ORA-06512: at "SAAP.EDI", line 1416".
  Msg 7320, Level 16, State 2, Line 2
  Cannot execute the query "select * from table(edi.ftCustomerCatalog('010','145','000164'))" against OLE DB provider "OraOLEDB.Oracle" for linked server "hades". 
  </code></pre>
  
  <p>Code:</p>
  
  <pre><code>function ftCustomerCatalog(comno varchar2,cpls varchar2, cuno varchar2) return tblCustomerCatalog pipelined 
  is
    c sys_refCursor;
    r recCustomerCatalog;
    sq varchar2(3000);
  begin
    sq:='select  
          a.comno
          ,a.t$cpls
          ,coalesce(a.t$cuno,b.t$cuno) as t$cuno
      ,a.t$cpgs,a.t$item
          ,a.t$Upcd
          ,a.t$dsca
          ,a.t$wght
          ,a.t$ship
        ,coalesce(b.t$stdt,c.t$stdt,d.t$stdt,e.t$stdt,f.t$stdt) as T$STDT
        ,coalesce(b.t$tdat,c.t$tdat,d.t$tdat,e.t$tdat,f.t$tdat) as t$tdat
        ,coalesce(b.t$qanp,c.t$qanp,d.t$qanp,e.t$qanp,f.t$qanp) as t$qanp
        ,a.t$pric
        ,coalesce(b.t$disc,c.t$disc,d.t$disc,e.t$disc,f.t$disc) as t$disc
        ,coalesce(b.source,c.source,d.source,e.source,f.source) as Source 
        from  table(edi.ftAllPlCatalogs(:comno,cpls)) where t$cuno=:cuno a
          left join table(edi.ft30ciDiscounts(:comno,:cpls,:cuno)) b on a.t$item=b.T$item and a.t$cuno=b.t$cuno
          Left Join table(edi.ft31CPGDiscounts(:comno,:cpls,:cuno))  c on a.t$cpgs=c.t$cpgs
          left Join table(edi.ft31Cdiscounts  (:comno,:cpls,:cuno)) d on d.t$cpgs is null
          left join table(edi.ft33plpgDiscounts(:comno,:cpls)) e on d.t$disc is null and a.t$cpgs=e.t$cpgs
          left join table(edi.ft33PlDiscount(:comno,:cpls)) f on e.t$disc is null 
        Order by A.T$CPGS, a.t$item;';
    Open c for SQ using
        comno,cpls,cuno
        ,comno,cpls,cuno
        ,comno,cpls,cuno
        ,comno,cpls,cuno
        ,comno,cpls
        ,comno,cpls;
     LOOP
      fetch c into r;
      exit when c%notfound;
      pipe row(r);
    END LOOP;
    close c;
  end;
  </code></pre>