ORACLE函数以及存储过程学习篇

Oracle 自定义函数

Create function 函数名称 return 返回值类型 as Begin … End 函数名称;

自定义简单的函数:

定义无参数函数
create function bookCount return number as
begin
  declare maxId number;
  begin
    select count(*) into maxId from t_book;
    return maxId;  
  end;
end;
输出:
set serverout on;
begin
  dbms_output.put_line('t_book有'|| bookCount() ||'条数据');
end;
--------------------------------------------------------
SQL> set serverout on;
SQL> begin
  2    dbms_output.put_line('t_book有'|| bookCount() ||'条数据');
  3  end;
  4  /
t_book有3条数据
PL/SQL procedure successfully completed

定义有参数函数
create function tableCount(tableName varchar2) return number as
begin
  declare recore_count number;
  query_SQL varchar2(300);
  begin
    query_SQL :='select count(*) from'|| tableName ||'group by id';
    execute immediate query_SQL into recore_count;
    return recore_count;  
  end;
end tableCount;

begin
  dbms_output.put_line('表有'|| tableCount('t_book') ||'条数据');
end;
输出:
SQL> begin
  2    dbms_output.put_line('表有'|| tableCount('t_book') ||'条数据');
  3  end;
  4  /
表有3条数据
PL/SQL procedure successfully completed

存储过程定义:

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

execute addBook('你好啊','1');
(未完。。。。。。)

猜你喜欢

转载自blog.csdn.net/qq_31681017/article/details/76572048