CREATE OR REPLACE PROCEDURE 
GetLastYearData(INDEX_NAME in VARCHAR2)
AS 
     TEMP  VARCHAR2(128);
  
Begin
if INDEX_NAME ='日总供电量' then
   select sum(TABLE_POWER.all_power) into TEMP  from TABLE_POWER;
end if;
END GetLastYearData;
怎么调用啊 !
还有 
在sql语句中 比如说 select UPDATE_TIME,INDEXTIME FROM A  语句中 想把表A的UPDATE_TIME,作为参数 传给GetLastYearData啊

解决方案 »

  1.   

    调用 
    BEGIN
    GetLastYearData('日总供电量' );
    END;不是很理解你表达的,简单的,SELECT INTO到一个变量,然后传给存储过程即可
      

  2.   


    CREATE OR REPLACE PROCEDURE GetLastYearData
           (INDEX_NAME in VARCHAR2)
    AS  
      TEMP VARCHAR2(128); 
    Begin
         if INDEX_NAME ='日总供电量' then
            select sum(TABLE_POWER.all_power) 
            into TEMP 
            from TABLE_POWER;
         end if;
         
         exception
         when others then
              dbms_output.put_line(sqlerrm);
    END GetLastYearData;
    --
    --调用
    exec getlastyeardate('日总供电量');
      

  3.   

    直接 select GetLastYearData(UPDATE_TIME),INDEXTIME FROM A
      

  4.   

    嗯 不过你这个过程有什么用了  呵呵  即不处理数据 也没out
      

  5.   

    在sql*plus工具下,执行:exec GetLastYearData('日总供电量' );
    或在pl/sql developer工具下,右键你的存储过程名,选择test,然后进行调试另外,你的这个过程确实没有什么用,因为没有数据输出和处理。