oracle函数定义小例子

最近在学习oracle的函数定义,发现sql函数的编写可真不简单,哪怕有一点点的格式不正确都不能编译通过。但是正是因为这样就又变得有意思了。

尝试了几个例子,做一下记录,本人使用的是plsql工具

1、返回一个字符串

--创建一个函数: f_test
create or replace function f_test    -- 注意无传入参数的函数不要加括号,否则会报错
return varchar2                      -- 注明返回的类型
is                                   -- 这是格式,可以是 is 或者是 as
str varchar2(30);                    -- 这是返回参数的变量声明

begin                                -- 函数体
  return 'hello world';
end f_test;                          -- 'end + 函数名'结束

创建完函数之后,使用plsql快捷键F8进行编译,如果在函数名左上角出现小红叉表示编译不通过
在这里插入图片描述
代码有问题,遇到这种情况我们可以在我们编写函数的sql文件中按住ctrl + 鼠标左键点击函数名称
在这里插入图片描述
会出现以下错误提示
在这里插入图片描述
当然这样程度的提示只能告诉我们错误在哪一行,而不能知道错了什么,这时候,我们要回去函数的sql去思考错误的地方病进行修改。

修改成功后,再次编译就不出现红叉了就可以使用该函数了
在这里插入图片描述

现在我们来测试一下这个函数。找到这个函数,右键——> 测试,弹出测试窗口(相当于我们java里的main方法)。plsql已经帮我们初始化了一些代码。
在这里插入图片描述
好的,现在来编写我们的逻辑。

begin
  -- Call the function
  :result := f_test;
  DBMS_OUTPUT.PUT_LINE(:result);
end;

编写完成后,我们来运行代码,点击‘开始调试器’
在这里插入图片描述
然后点击
在这里插入图片描述
顺便说明一下,右边四个按钮是用来调试的

运行之后会出现结果,在这里插入图片描述
再点击
在这里插入图片描述
可以看到
在这里插入图片描述
好嘞,大功告成!

2、根据传入参数输出字母

create or replace function f_test(i number in)
return char
is
c char;

begin
  if i = 1 then return 'a';
  elsif i = 2 then return 'b';  --注意是elsif而不是elseif,少了个e
  else i = 3 then return 'c';
end f_test;

3、循环,打印10次hello world

DECLARE x number;
  begin
    x := 0;
    while x < 10 loop
      DBMS_OUTPUT.PUT_LINE('hello world');
      x := x+1;
    end loop;
  end;

初学者,不足地方大家指点一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值