Oracle之自定义函数

简介:

数据库中函数包含四个部分:声明、返回值、函数体和异常处理。

Sql代码

-没有参数的函数
create or replace function get_user return varchar2 is
v_user varchar2(50);
begin
select username into v_user from user_users;
return v_user;
end get_user;

--测试
方法一
select get_user from dual;

方法二
SQL> var v_name varchar2(50)
SQL> exec :v_name:=get_user;

PL/SQL 过程已成功完成。

SQL> print v_name

V_NAME

TEST

方法三
SQL> exec dbms_output.put_line('当前数据库用户是:'||get_user);
当前数据库用户是:TEST

PL/SQL 过程已成功完成。

Sql代码
--带有IN参数的函数
create or replace function get_empname(v_id in number) return varchar2 as
v_name varchar2(50);
begin
select name into v_name from employee where id = v_id;
return v_name;
exception
when no_data_found then

raise_application_error(-20001, '你输入的ID无效!');  

end get_empname;
附:
函数调用限制
1、SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数
2、SQL只能调用带有输入参数,不能带有输出,输入输出函数
3、SQL不能使用PL/SQL的特有数据类型(boolean,table,record等)
4、SQL语句中调用的函数不能包含INSERT,UPDATE和DELETE语句

查看函数院源代码
oracle会将函数名及其源代码信息存放到数据字典中user_source
select text from user_source where name='GET_EMPNAME';

删除函数
drop function get_empname

相关文章
|
SQL 关系型数据库 MySQL
MySQL之SQL执行顺序
MySQL之SQL执行顺序
159 0
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能物流路径优化
使用Python实现智能物流路径优化
468 1
|
网络协议 安全 网络安全
TCP Wrapper简易防火墙
TCP Wrapper简易防火墙
364 0
|
Linux C语言
【Linux系统编程】基础指令(二)(上)
【Linux系统编程】基础指令(二)
|
人工智能 自然语言处理
ChatGPT高效提问—prompt常见用法(续篇)
ChatGPT高效提问—prompt常见用法(续篇)
217 0
|
缓存 前端开发 JavaScript
"React与GraphQL Apollo Client的神奇之处:如何用高效数据驱动应用让你的项目一鸣惊人?"
【8月更文挑战第31天】在当今的Web开发领域,数据驱动应用已成主流。本文章深入探讨了React——一个用于构建用户界面的流行JavaScript库,与GraphQL及Apollo Client结合使用时如何助力开发者高效创建数据驱动应用。通过示例代码,文章展示了React与GraphQL Apollo Client在实际项目中的应用方法,并总结了其优势及最佳实践,为读者提供了全面的技术指南。
126 0
|
移动开发 JavaScript 前端开发
jstl的使用 转发和重定向(做项目遇到的一些问题总结)
这篇文章主要介绍了JSTL的使用、转发与重定向的区别、Shiro权限标签的使用、Spring框架的基本概念以及AOP的理解,还涉及了Spring MVC中的表单标签使用和一些前端开发中的小技巧。
|
移动开发 JSON 前端开发
嵌入式linux之go语言开发(五)阶段性小结
嵌入式linux之go语言开发(五)阶段性小结
|
存储 JavaScript
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】
430 0
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】
|
Java Maven Spring
Spring Cloud【Finchley】-09Feign使用Hystrix
Spring Cloud【Finchley】-09Feign使用Hystrix
238 0