create or replace function FN1(
ASTART_CODE VARCHAR2, 
AENDCODE VARCHAR2
)
return PUR0001PACKAGE.T_CURSOR is
Result PUR0001PACKAGE.T_CURSOR;
begin
  Open Result For
    Select CODE,SUPPLIER_NAME,FAX,STATE,PHONE,
      BILLING_ADDRESS_1,BILLING_ADDRESS_2,BILLING_ADDRESS_3 
      From DATA0023 
      Where CODE>=ASTART_CODE
      And CODE<=AENDCODE;
  return(Result);
end FN1;如行,请问在TQuery的SQL语句如何写?

解决方案 »

  1.   

    把这个函数写在存储过程里,然后再用QueryProcStore存储过程控件去调用.
      

  2.   

    TO: 78hgdong(赤脚) 
      你的意思是用TQuery来做不行?
      

  3.   

    直接调用可以的:
      select  N1(...)  As 'Result' From Dual
      

  4.   

    说得没有错,select  N1(...)  As 'Result' From Dual
    但如果返回的是一个结果集呢,怎么办?
      

  5.   

    当然可以:
    你用到了返回结果集的游标,所以你需要把你的Function放到包里面。
    SQL:='{call PKG_JCCTEST1.FN1(?,?)}'
    更多详细做法参考
    http://dev.csdn.net/article/60/60789.shtm