pl/sql---存储函数和包

存储函数

创建

CREATE [OR REPLACE FUNCTION 函数名(参数1,参数2...)]
RETURN 数据类型---数据类型不能带精度/不能被约束
AS|IS
  变量名 变量类型;
  ...
BEGIN
  PLSQL结构体
  RETURN 变量名
  EXCEPTION
    异常结构体
END[函数名]

函数的关键词为FUNCTION;
函数没有输出参数,只有一个返回值类型,
这个返回值类型要使用RETURN关键词单独声明,没有名字,没有长度;
程序中要使用RETURN关键词指明待返回结果,
这个待返回结果要与声明的返回值类型一致。

----查询每位员工的名字及工龄

SELECT ENAME,TO_CHAR(SYSDATE,'YYYY')-TO_CHAR(HIREDATE,'YYYY') FROM EMP;


CREATE OR REPLACE FUNCTION F_HIREDATE(    ----创建一个函数
  I_HIREDATE   DATE   ---函数中的参数 ,方便调用
)
RETURN NUMBER    ----NUMBER为数据类型,不能返回其他的东西
IS 
        -----这里可以声明变量(这个不需要)
BEGIN
   ---返回这个语句的结果,这个语句可以是变量,语句等
  RETURN TO_CHAR(SYSDATE,'YYYY')-TO_CHAR(I_HIREDATE,'YYYY');
  
END F_HIREDATE;
/
CREATE OR REPLACE FUNCTION F_HIREDATE(
  I_HIREDATE   DATE
)
RETURN NUMBER
IS 
   ----声明一个变量,用于存放想要的结果   
  V_YEAR NUMBER(10);
BEGIN
  ----得到想要的结果,把结果赋值给变量
  SELECT TO_CHAR(SYSDATE,'YYYY')-TO_CHAR(I_HIREDATE,'YYYY') INTO V_YEAR FROM DUAL;
  ----返回变量的值
  RETURN V_YEAR;
END F_HIREDATE;

调用

调用函数,跟原来的调用函数书写方式一样
SELECT ENAME,F_HIREDATE(HIREDATE) FROM EMP;
创建一个函数,调用时输入薪资和奖金,返回年收入

CREATE OR REPLACE FUNCTION F_NSR(
  I_SAL  NUMBER,
  I_COMM NUMBER
)
RETURN NUMBER
IS
  V_NSR NUMBER;
BEGIN

  SELECT (I_SAL+
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值