--1、自定义函数 create or replace function 函数名(参数1 参数类型1,参数2 参数类型2,……) return 返回值类型 as begin 函数定义 end 函数名; --实例1 select * from test1; create or replace function getMaxTage return number as begin declare maxAge number; begin select max(tage) into maxAge from test1; return maxAge; end; end getMaxTage; --实例1调用 begin dbms_output.put_line('表test1中年纪最大的是:'||getMaxTage()); end; --执行动态拼接SQL语句:execute immediate sql语句…… --为了提高数据库效率利用函数的确定性:在return 返回类型之后,as之前添加deterministic关键字,前提条件是函数传入参数 --一样时返回相同,第二次调用函数是数据库就用前一个计算的值,而不需要再重新计算一次. --自定义函数+游标 create or replace function row2column(sqlString varchar2) return varchar2 as begin declare type cu_type is ref cursor; temp_cursor cu_type; temp_row1 varchar2(20); temp_row2 varchar2(10); v_result varchar2(200); begin open temp_cursor for sqlString; fetch temp_cursor into temp_row1,temp_row2; while temp_cursor%found loop v_result := v_result || temp_row1 || ':' || temp_row2 || ';'; fetch temp_cursor into temp_row1,temp_row2; end loop; return v_result; --rtrim(v_result,',') end; end row2column; --调用 select row2column('select tname,tage from test1 where tage >30') v_result from dual; --2、存储过程 create or replace procedure 存储过程名称(参数1 in/out 参数类型1,参数2 in/out 参数类型2,……) as begin 存储过程定义 end 存储过程名称; --参数类型: --in只进步出(表明in参数不能再存储过程内部进行修改) --out只出不进(out参数实际作为存储过程执行结果的出口,必须使用变量为参数,变量的作用相当于占位符,只是接收存储过程内部赋值) --in out 典型场景为交换两个变量值 --存储过程添加调试测试 create or replace procedure insertTest1(tname in varchar2,tage in number, ori_count out number,cur_count out number) as begin declare v_max_id number; begin if(tname is null or length(tname)=0)then return; end if; if(tage<10 or tage>30)then return; end if; select count(1) into ori_count from test1; select max(tid) into v_max_id from test1; insert into test1 values(v_max_id+1,tname,tage,'test1'); select count(1) into cur_count from test1; end; end insertTest1; --程序包 create or replace package pkg_test as function getMaxTage return number; procedure insertTest1(tname in varchar2,tage in number, ori_count out number,cur_count out number); end pkg_test; -- create or replace function is_date(params varchar2) return varchar2 is d date; begin d:=to_date(nvl(params,''),'yyyy-mm-dd hh24:mi:ss'); return 'Y'; exception when others then return 'N'; end; select is_date('20101010') from dual;
相关推荐
oracle函数调用存储过程.doc
oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!
oracle函数大全与存储过程语法 ,有9I,10G的oracle函数和存储过程语法,
oracle 函数 oracle函数 存储过程
oracle函数大全及存储过程语法 oracle函数大全及存储过程语法 oracle函数大全及存储过程语法 oracle函数大全及存储过程语法
你还在为如何调用oracle中的存储过程和函数而烦恼吗,请看看该文档。
包括以下内容: Oracle数据库基础 oracle帮助文档 oracle存储过程的语法和使用 oracle函数帮助文档 : : :
java调用oracle存储过程或者函数
里面包含了oracle中最基本的函数和存储过程的例子,可咦更加直观的学好函数和存储过程
oracle函数大全及存储过程语法 chm
oracle函数大全及存储过程语法.rar
oracle 的函数、存储过程、游标、简单实例 oracle常用语句oracle 的函数、存储过程、游标、简单实例 oracle常用语句
如何调用oracle的函数、存储过程
Oracle中的函数、存储过程、包. 函数 ①系统函数 ②自定义函数 ③使用函数 ④编写过程 ⑤过程的调用
Oracle常用Oracle、函数、存储过程[归类].pdf
Oracle存储过程、游标、函数的详解
Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作),目前最详细的存储过程文档,不好你举报我。含好多ORACLE SCOTT中emp表的实例。