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

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

Oracle之自定义函数相关推荐

  1. OleDb执行Oracle带自定义函数的SQL深度历险

    真是太郁闷了, 郁闷了我多半天. 事情从以前写的自定义函数讲起: create or replace function f_getWorkdays(dayBegin in Date, dayEnd i ...

  2. oracle 创建nchar类型,ORACLE创建自定义函数返回varchar类型

    select from tmp1; select from tmp2; 方法一: 好处:简单,直接sql展示 劣处:如果主表数据量太大,十几亿的话,性能会大大下降,此时建议第二种方法 select a ...

  3. oracle中自定义函数如何使用,oracle自定义函数语法及使用

    1.自定义函数语法 create [or replace] function  函数名                         -- 定义一个名为xxx的函数 ( parameterName1 ...

  4. Oracle的自定义函数浅析

    用户定义函数是存储在数据库中的代码块,可以把值返回到调用程序.调用时如同系统函数一样,如max(value)函数,其中,value被称为参数.函数参数有3种类型. IN 参数类型:表示输入给函数的参数 ...

  5. 使用ODAC调用ORACLE的自定义函数和存储过程

    procedure TForm1.btn1Click(Sender: TObject);var i:integer;begin//预处理with OraStoredProc1 dobegin Auto ...

  6. 先随机后排序的oracle,Oracle用decode函数或CASE-WHEN实现自定义排序

    Oracle用decode函数或CASE-WHEN实现自定义排序 1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字 ...

  7. Oracle存储过程和自定义函数

    概述 Oracle-procedure解读 Oracle存储过程和自定义函数 PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库 ...

  8. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  9. Oracle自定义函数

    2019独角兽企业重金招聘Python工程师标准>>> Oracle自定义函数 用户定义函数是存储在数据库中的代码块,可以把值返回到调用程序.调用时如同系统函数一样,如max(val ...

  10. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子

    核心提示:函数用于返回特定数据.执行时得找一个变量接收函数的返回值; 语法如下: create or replace function function_name ( argu1 [mode1] da ...

最新文章

  1. jbpm知识点——tasknode
  2. 安装oracle到create inventory时卡住了怎么办_「推荐」wacom数位板怎么用?教你如何正确的安装数位板驱动...
  3. 登录之验证码相关实现
  4. JSP 第一天:提交表单--获取表单中的数据值
  5. HDU 1010 Tempter of the Bone heuristic 修剪
  6. 二叉树中的最大路径和
  7. 浅谈c#中使用lock的是与非
  8. Istio最佳实践:在K8s上通过Istio服务网格进行灰度发布
  9. 将软件添加到右键菜单 最简单的方法
  10. 解决360 安装补丁智能忽略的问题!
  11. 微信会员卡如何为不同用户设置不同有效期?
  12. ubuntu 安装 hustoj
  13. linux vdi,linux – 调整vdi大小不能正常工作
  14. python装在固态还是机械好_大容量与高性能SSD硬盘的比较
  15. Android9.0 紧急号码配置
  16. 毕业论文 引用与自动编号基本技巧
  17. Python知识点总结——fractions(分数模块)
  18. ThinkPHP3.2.3 where注入
  19. 使用Git工具上传项目代码到Gitee仓库
  20. 1 Introduction  介绍

热门文章

  1. 小特效【较完善的滑动下拉菜单】【购物车加减器】
  2. Jenkins中集成Gcov代码覆盖率报告
  3. Mac中显示和隐藏隐藏文件命令行
  4. Mac版微信支持朋友圈了!微信内测版体验感
  5. 需要压缩NTFS盘的情况有哪些?
  6. 想要做音乐玩音乐,有这一个软件就够了!
  7. CrossOver for Mac 怎么用?
  8. kubernetes资源对象--pod和job
  9. 一个正在被API驱动的互联网时代
  10. window设置定时任务执行python脚本