`

oracle中程序包?

阅读更多
1. oracle程序包
引入的目的,是为了有效的管理函数和存储过程,当项目模块很多的时候,用程序包管理就很有效了。
语法:
create or replace package 包名 as
变量名称 1 数据类型 1;
变量名称 2 数据类型 2;
...
...
function 函数名称 1(参数列表) return 数据类型 1;
function 函数名称 2(参数列表) return 数据类型 2;
...
... 
procedure 存储过程名称 1(参数列表);
procedure 存储过程名称 2(参数列表);
...
... 
end 包名;

创建程序包调用其它函数
SQL> create package pkg_book as
   function getbookcount return number;
   function getTableCount(table_name varchar2) return number;
   procedure addBook(bookName in varchar2,typeId in number);
end pkg_book;

创建程序包???
SQL> create package body pkg_book as
	function getBookCount return number as
		begin
			declare book_count number;
			begin
			select count(*) into book_count from t_book;
			return book_count;
		end;
	end getBookCount;
	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 getTableCount;
	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);
			commit;
		end;
	end addBook;
end pkg_book;
SQL> set serveroutput on;
begin
  dbms_output.put_line('表t_book有'|| pkg_book.getBookCount() ||'条数据');
end;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics