查看: 4095|回复: 7

[PL/SQL] pl/sql中有没有类似c++内联函数的写法?

[复制链接]
论坛徽章:
3
ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-28 15:59:38
发表于 2018-2-9 15:36 | 显示全部楼层 |阅读模式
依稀记得以前看过有人写的在过程里面声明和定义函数而不是分开。类似如下写法,当然我这个会编译报错,请教下大神

create or replace procedure tt_f
as
  -- Local variables here
  i integer;
  function max_a( int a, int b ) return int; ---声明函数
begin
  -- Test statements here
  i := 3;
  function max_a(a int ,b int )      --实现函数
  return int is
  begin
    if a > b then return a
    else return b
    end if;
  end ;
  }
   i := max_a(4,5);   --使用函数
   dbms_output.put_line(i));
end;

认证徽章
论坛徽章:
23
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29蒙奇·D·路飞
日期:2018-08-10 09:29:14弗兰奇
日期:2018-07-19 17:11:57娜美
日期:2018-06-22 09:24:50秀才
日期:2018-06-21 10:08:00ITPUB15周年纪念
日期:2018-03-20 15:45:33ITPUB15周年纪念
日期:2018-03-20 15:25:18托尼托尼·乔巴
日期:2018-02-05 08:12:49蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05
发表于 2018-2-9 16:11 | 显示全部楼层
CREATE OR REPLACE PROCEDURE tt_f
AS
   i   INTEGER;
   FUNCTION max_a (a IN INT, b IN INT)  RETURN INT   ---声明函数  
   AS
   BEGIN   
      IF a > b
      THEN
         RETURN a;
      ELSE
         RETURN b;
      END IF;
   END;
BEGIN
   i := 3;
   i := max_a (4, 5);     --使用函数
   DBMS_OUTPUT.put_line (i);
END;

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2018-2-9 16:11 | 显示全部楼层
不用声明,直接定义

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2018-2-9 16:18 | 显示全部楼层
SQL> create or replace procedure tt_f
  2  as
  3    -- Local variables here
  4    i integer;
  5    function max_a(a int ,b int )      --实现函数
  6    return int is
  7    begin
  8      if a > b then return a;
  9      else return b;
10      end if;
11    end ;
12  begin
13    -- Test statements here
14    i := 3;
15  
16     i := max_a(4,5);   --使用函数
17     dbms_output.put_line(i);
18  end;
19  /

Procedure created.

SQL> set serverout on
SQL> exec tt_f
5

PL/SQL procedure successfully completed.

使用道具 举报

回复
论坛徽章:
3
ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-28 15:59:38
 楼主| 发表于 2018-2-9 16:26 | 显示全部楼层
〇〇 发表于 2018-2-9 16:18
SQL> create or replace procedure tt_f
  2  as
  3    -- Local variables here

不愧是〇〇大神

使用道具 举报

回复
论坛徽章:
3
ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-28 15:59:38
 楼主| 发表于 2018-2-9 16:26 | 显示全部楼层
guocun09 发表于 2018-2-9 16:11
CREATE OR REPLACE PROCEDURE tt_f
AS
   i   INTEGER;

多谢,受教了

使用道具 举报

回复
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2018-2-9 16:30 | 显示全部楼层

你的代码有很多分号漏写,还多了}

使用道具 举报

回复
论坛徽章:
3
ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-28 15:59:38
 楼主| 发表于 2018-2-9 17:16 | 显示全部楼层
〇〇 发表于 2018-2-9 16:30
你的代码有很多分号漏写,还多了}

是的,已经改正了。谢谢提醒

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

【有奖讨论】解决存储挑战了解一下
奖品:米家车载空气净化器 、米家声波电动牙刷 、小米运动蓝牙耳机

在数字经济时代,井喷式增长的数据,在释放大量商业价值的同时,也随之对企业的IT基础设施带来了不容忽视的挑战!如何存储、管理、使用这些数据呢?这是一条比以往更艰难的路~

活动时间:9月20日-10月11日

参与讨论>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表