CREATE OR REPLACE PROCEDURE p_DisplayFaction(
 v_Faction TFACTION.C_FACTION %TYPE,
 v_LEADER  TFACTION.LEADER %TYPE,
 v_CREATEDATE TFACTION.L_CREATEDATE %TYPE,
 v_PERSONS  TFACTION.L_PERSONS %TYPE 
)AS
BEGIN
  SELECT C_FACTION,L_LEADER,L_CREATEDATE,L_PERSONS into v_Faction,v_LEADER,v_CREATEDATE,v_PERSONS FROM TFACTION WHERE C_FACTION=v_Faction;
END p_DisplayFaction;

解决方案 »

  1.   

    把结果放到一个表中,让后连接数据库用 select 返回结果显示不就行了
    还有在存储过程中 不能用 select * from table_name where ....
    必须  a   table_name%rowtype;
         select * into a from table_name where ....CREATE OR REPLACE PROCEDURE p_DisplayFaction(
    v_Faction TFACTION.C_FACTION %TYPE)AS
    a     TFACTION.C_FACTION%rowtype;
    BEGIN
    SELECT * into a FROM TFACTION WHERE C_FACTION=v_Faction;
    dbms_output.put_line(a.C_FACTION||' '||a,L_LEADER||' '||a.L_CREATEDATE||' '||a.L_PERSONS);
    END p_DisplayFaction;
      

  2.   

    oracle存储过程用select需要into语句的