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

相关文章
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能物流路径优化
使用Python实现智能物流路径优化
360 1
|
11月前
|
人工智能 自然语言处理
ChatGPT高效提问—prompt常见用法(续篇)
ChatGPT高效提问—prompt常见用法(续篇)
157 0
|
Linux C语言
【Linux系统编程】基础指令(二)(上)
【Linux系统编程】基础指令(二)
|
机器学习/深度学习 人工智能 算法
强化学习在复杂环境中的应用与挑战
【8月更文第9天】强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过智能体与环境的交互来学习最优策略。近年来,随着计算能力的提升和算法的进步,强化学习被广泛应用于各种复杂环境下的任务,如机器人导航、游戏策略优化等。本文将探讨强化学习在这些领域中的应用案例,并分析所面临的挑战及其潜在的解决方案。
893 4
|
缓存 前端开发 JavaScript
"React与GraphQL Apollo Client的神奇之处:如何用高效数据驱动应用让你的项目一鸣惊人?"
【8月更文挑战第31天】在当今的Web开发领域,数据驱动应用已成主流。本文章深入探讨了React——一个用于构建用户界面的流行JavaScript库,与GraphQL及Apollo Client结合使用时如何助力开发者高效创建数据驱动应用。通过示例代码,文章展示了React与GraphQL Apollo Client在实际项目中的应用方法,并总结了其优势及最佳实践,为读者提供了全面的技术指南。
92 0
|
移动开发 JavaScript 前端开发
jstl的使用 转发和重定向(做项目遇到的一些问题总结)
这篇文章主要介绍了JSTL的使用、转发与重定向的区别、Shiro权限标签的使用、Spring框架的基本概念以及AOP的理解,还涉及了Spring MVC中的表单标签使用和一些前端开发中的小技巧。
|
网络协议 安全 网络安全
TCP Wrapper简易防火墙
TCP Wrapper简易防火墙
272 0
|
JSON 数据可视化 前端开发
利用 Django 动态展示 Pyecharts 图表数据的几种方法(一)
利用 Django 动态展示 Pyecharts 图表数据的几种方法
|
数据库 Python
Python实战:通过内置函数urljoin优雅的实现url链接的拼接
Python实战:通过内置函数urljoin优雅的实现url链接的拼接
458 0
|
存储 JavaScript
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】
364 0
看不懂vue源码?没事,来手写一个mini-vue3吧【reactivity】