《Oracle PL/SQL开发指南》学习笔记31——源码调试——函数和过程(第一部分,函数调用表示法)

这节很基础,却发现了Oracle的可爱之处,一个函数调用就提供了这么多选项,学起来真够累的!

 

1. 在PL/SQL中调用函数表示法 

SQL> /* Formatted on 2018/12/4 0:08:00 (QP5 v5.256.13226.35538) */
SQL> CREATE OR REPLACE FUNCTION add_three_numbers (a    NUMBER := 0,
  2                                                b    NUMBER := 0,
  3                                                c    NUMBER := 0)
  4     RETURN NUMBER
  5  IS
  6  BEGIN
  7     RETURN a + b + c;
  8  END;
  9  /

函数已创建。

--位置表示法(Positional Notation)
SQL> BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (3, 4, 5));
  3  END;
  4  /
12

PL/SQL 过程已成功完成。

--命名表示法(Named Notation)
SQL> BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (c=>3, a=>4, b=>5));
  3  END;
  4  /
12

PL/SQL 过程已成功完成。

SQL> BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (3, a=>4, b=>5));
  3  END;
  4  /
   DBMS_OUTPUT.put_line (add_three_numbers (3, a=>4, b=>5));
                         *
第 2 行出现错误:
ORA-06550: 第 2 行, 第 26 列:
PLS-00703: 列表中具有指定参数的多个实例
ORA-06550: 第 2 行, 第 4 列:
PL/SQL: Statement ignored

--混合表示法(Mixed Notation)
SQL> ed
已写入 file afiedt.buf

  1  BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (3, c=>4, b=>5));
  3* END;
SQL> /
12

PL/SQL 过程已成功完成。

SQL> BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (3, a=>4));
  3  END;
  4  /
   DBMS_OUTPUT.put_line (add_three_numbers (3, a=>4));
                         *
第 2 行出现错误:
ORA-06550: 第 2 行, 第 26 列:
PLS-00703: 列表中具有指定参数的多个实例
ORA-06550: 第 2 行, 第 4 列:
PL/SQL: Statement ignored

--排除表示法(Exclusionary Notation)
SQL> ed
已写入 file afiedt.buf

  1  BEGIN
  2     DBMS_OUTPUT.put_line (add_three_numbers (3, c=>4));
  3* END;
SQL> /
7

PL/SQL 过程已成功完成。

2. SQL调用函数表示法

SQL> SELECT add_three_numbers (2018, 2050, 2080) from dual;

ADD_THREE_NUMBERS(2018,2050,2080)
---------------------------------
                             6148


SQL> SELECT add_three_numbers (c=>2018, a=>2050, b=>2080) from dual;

ADD_THREE_NUMBERS(C=>2018,A=>2050,B=>2080)
------------------------------------------
                                      6148

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值