4、存储过程(procedure)

create function getBookCount return number as
begin
   declare book_count number;
   begin
        select count(*) into book_count from t_book;
        return book_count;
   end;
end;


set serverout on;
begin
    dbms_output.put_line(getBookCount());
end;




create function getTableCount(table_name varchar2) return number as
begin
       declare recore_count number;
       query_sql varchar2(300);
       begin
               query_sql:='select count(*) from ' || table_name;
               execute immediate query_sql into recore_count;
               return recore_count; 
       end;
end;


set serverout on;
begin
    dbms_output.put_line(getTableCount('t_book'));
end;




create procedure addBook(bookName in varchar2,typeId in number) as
begin
       declare maxId number;
       begin
              select max(id) into maxId from t_book;
              insert into t_book values (maxId+1,bookName,typeId);
       end;
       
end;


execute addBook('java好东西111',1);


create or replace procedure addBook2(book_Name in varchar2,typeId in number) as
begin
       declare maxId number;
       n number;
       begin
         select count(*) into n from t_book where bookname=book_Name;
         if(n>0) then
            dbms_output.put_line('已存在');
            return;
          end if;
          select max(id) into maxId from t_book;
          insert into t_book values (maxId+1,book_Name,typeId);
          dbms_output.put_line('插入了');
       end;
end;


execute addBook2('java好东西222',1);


create or replace procedure addBook3(book_Name in varchar2,typeId in number,n1 out number,n2 out number) as
begin
       declare maxId number;
               n number;
       begin
               select count(*) into n1 from t_book;
               select count(*) into n from t_book where bookname=book_Name;
               if(n>0) then
                  dbms_output.put_line('已存在');
                  return;
               end if;   
               select max(id) into maxId from t_book;
               insert into t_book values (maxId+1,book_Name,typeId);
               commit;
               select count(*) into n2 from t_book;
       end;
end;


declare n1 number;
        n2 number;
begin
        execute addBook3('aaa',2,n1,n2);
        dbms_output.put_line(n1 || '.........' || n2);
end;        





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值