CREATE FUNCTION CheckGoodsNo (@GoodNo varchar(20))  
RETURNS @Goods TABLE
(
  tableid varchar(6),
  tablename varchar(26) 
)
AS
BEGIN
      insert @Goods
        select distinct 'a001' as AA, '客户商品价格档' as BB 
        FROM a
        WHERE a002=@GoodNo 
      ......          
      RETURN     
END

解决方案 »

  1.   

    oracle无法简单返回这种的。
    你可以写个包,返回一个游标
      

  2.   

    CREATE OR REPLACE PROCEDURE ll_02 (
    p_GoodNo in varchar2(20))  
    p_cursor OUT sys_refcursor) IS
    BEGIN
       OPEN p_cursor FOR
            select distinct 'a001' as AA, '客户商品价格档' as BB 
            FROM a
            WHERE a002=p_GoodNo;END ll_02;
      

  3.   

    --上面的有点错误CREATE OR REPLACE PROCEDURE ll_02 (
    p_GoodNo in varchar2(20), 
    p_cursor OUT sys_refcursor) IS
    BEGIN
       OPEN p_cursor FOR
            select distinct 'a001' as AA, '客户商品价格档' as BB 
            FROM a
            WHERE a002=p_GoodNo;END ll_02;
      

  4.   

    oracle中可以用游标,索引表,嵌套表的形式返回
      

  5.   

    icedut(冰) ( ) 信誉:100    Blog  2007-01-17 14:33:18  得分: 0  
     
     
       oracle中可以用游标,索引表,嵌套表的形式返回
      
     
     我要返回的是从多个表取得的数据集,用来做对比的,写成过程的话,怎么处理?
      

  6.   

    返回数据集用package,
    单个结果可以用function