大家好,问一个简单的select count 问题。做了一个资源有限的ID ,如果设置id被用设置状态为1,未用的id设置状态为 0更新记录前先判断是否有空闲的id数目 ,如果数目大于0,就更新,如果等于0,就create or replace procedure test(total out number,id...)
is
...
begin
    select count(*) as total from table_name where status=0;
    if total>0 then
      ....     end if;
     if total=0 then
     ...
     end if;
end;
/貌似select count(*) as total from table_name where status=0;有问题,我想把状态为1的记录条数赋给total,不知道有什么方法?请大家多多指导
 

解决方案 »

  1.   

    要用into 
    select count(*) into  total from table_name where status=0;
      

  2.   

    在存储过程中要使用select into的方式把SQL得到的值赋给变量
    set serverout on
    declare
    v_count number;
    begin
    select count(1) into v_count from dual;
    dbms_output.put_line(v_count);--如果是动态SQL
    execute immediate 'select count(1) from dual' into v_count;
    dbms_output.put_line(v_count);
    end;
      

  3.   

    select count(*) into total 
      

  4.   

    select count(*) into total from table_name where status=0;
      

  5.   

    as 是给列制定别名的。要用into赋值。
    select count(*) into total from table_name where status=0;