下面是一个简单的存储过程,,,跟据@o_id,从表ANJTHA检索出BLDNM,但是BLDNM可能有很多条,上前的结果是只显示 出来一条,可能是我存储过程写的有问题,请高人指点指点,小弟自学存储过程刚开始,之前没写过.
CREATE PROCEDURE protest
@o_id  varchar,
@p_tot varchar(256) output
AS
SELECT @p_tot = BLDNM
FROM ANJTHA
WHERE ENDNM=@o_id GO

解决方案 »

  1.   

    CREATE or replace PROCEDURE protest(
      o_id in varchar2,
      p_tot out varchar2
    ) as
    begin
      select BLDNM into p_tot from  ANJTHA WHERE ENDNM=o_id;
    end;注意参数名字不能用@开头。还有,你是说这个查询只有一条结果吗?如果不是这样要定义一个集合然后bulk collect into ...
      

  2.   

    我这个是在SQL SERVER 里面写的,楼上是不是在ORACLE写的?语法不一样么,按您的写法报错.
      

  3.   

    LZ的过程是 SQLSERVER的2楼的PLSQL是Oracle的
      

  4.   

    散分结贴吧,然后到SQLSERVER坛中去问.