计算出表aa的记录数,将它存入number型变量v_num

解决方案 »

  1.   

    create  or  replace  procedure  kk  
    as  
    v_num number; -----声明一个整型变量 v_num
    begin  
       select  count(1) into v_num from  aa;  ---查出表aa的记录数,然后赋予变量v_num
    end  kk; 
     实际上可以这样写  select  count(*) into v_num from  aa;
      

  2.   

    那该怎样调用这个存储过程啊? 还有这个变量v-num以后是不是就成为表aa的一个字段了?还是成为一个新的表了?
      

  3.   

    不是的,这个变量只属于这个存储过程,作用域仅仅在这个存储过程之中。
    你可以再加一句:dbms_output.put_line(v_num);查看v_num的值。
      

  4.   

    create or replace procedure pro_name(yourname varchar2(20)) as
    begin
        insert into table_user(id,name) values(table_user.nextval,'yourname');
        commit;
    end;
    这个存储过程的as后面咋没有参数啊?并且这个pro_name后面还跟了个参数?
    2:上面那个参数咋在as之后啊?这两种写法效果是不是一样的?
    3:as的作用是什么啊?怎么有的存储过程as后面有东西,有的没有?
      

  5.   

    as后面的参数是过程内部的变量;
    过程名后面括号中的参数是调用这个过程时的参数;
    有没有as是看需要,这个过程就不需要,只是做了一个简单的插入记录;
      

  6.   

    1:该怎样调用一个存储过程啊?在oracle里可以直接调用吗?2:create or replace procedure p_demo as
    v_addr varchar2(12);
    begin
    select address into v_addr from tbname where id='1';
    dbms_output.put_line(v_addr);
    exception when others then
      dbms_output.put_line('sql error!');
    end p_demo;
    /
    功能:找到id=1的address,显示出来
    set serveroutput on;
    exec p_demo;
    这个存储过程里面dbms_output.put_line(v_addr);一句有什么用?3:其中的:exception when others then
      dbms_output.put_line('sql error!');有什么用?是不是必须的?4:set serveroutput on;
    exec p_demo;
    其中的exec p_demo;在oracle里是不是可以就这样直接调用存储过程呢?其中的set serveroutput on;又是什么意思?
      

  7.   

    老大,我知道你为什么可用分不够了。什么问题都上来问,当然不够啦!!1。在sqlplus中,exec 过程名(参数);(如果有参数的话)
    2。将v_addr显示出来
    3。捕捉异常;你不用也行
    4。set serveroutput on 就是让你的输出打印出来,即显示出来。
    over
    你应该找本书看看。