Oracle概念:过程、函数、程序包(中)

日期: 2009-06-11 作者:Arraygrassbell 来源:TechTarget中国 英文

  函数:
  与过程相似,遵循了相同的规则。
  参数传递:只能带有in参数,不能使用out, in out 参数
  函数的主要特性是必须返回一个值。
  语法:
  CREATE [OR REPLACE] FUNCTION function_name (参数)
  RETURN datatype
  IS | AS
  [PRAGMA AUTONOMOUS_TRANACTION;] –声明自主事务处理。
  [本地变量声明]
  BEGIN
  执行语句部分
  [EXCEPTION]
  错误处理部分
  END[name];
  /
  返回值:
  定义函数的时候必须使用RETURN datatype 子句,表示函数要返回的数据类型。
  在函数体中的任何地方,都可以使用 RETURN <表达式>返回值,类型要和定义中的相同。
  CREATE OR REPLACE
  FUNCTION my_func
  RETURN varchar2
  As
  Begin
  Return ‘HELLO, WORLD’;
  END;
  /
  调用函数:
  用户必须要获取返回值,所以调用时,要声明一个局域变量:
  set serveroutput on
  declare
  l_str varchar2(100) := null;
  begin
  l_str := my_func;
  dbms_output.put_line(l_str);
  end;
  /
  也可以将函数用作其他过程以及函数的IN参数。
  Create or replace
  Procedure show_it(p varchar2) as
  Begin
  Dbms_output.put_line(p);
  End;
  /
  exec show_it(my_func);
  练习:
  编写一个函数ITE,实现:boolean expression ? true_value: false_value
  输入一个表达式expression, IF正确,THEN输出true_value;ELSE,输出false_value
  分析:3个in 参数,一个boolean, 2个varchar2
  create or replace
  function ite(
  p_expression Boolean,
  p_true varchar2,
  p_false varchar2)
  return varchar2
  as
  begin
  if p_expression then
  return p_true;
  end if;
  return p_false;
  end;
  /
  exec dbms_output.put_line(ite(1=2, ‘Equal’

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐