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

相关文章
|
6月前
|
Oracle 关系型数据库
oracle(内置函数)
oracle(内置函数)
|
11月前
|
存储 消息中间件 SQL
Oracle 的常用函数
Oracle 的常用函数
183 0
|
Oracle 关系型数据库
Oracle的函数大全
Oracle的函数大全
126 0
|
Oracle 关系型数据库
Oracle常用函数【建议收藏】
Oracle常用函数【建议收藏】
78 0
Oracle常用函数【建议收藏】
|
Oracle 关系型数据库 数据库
Oracle常用函数
分享下Oracle数据库的常用函数 一、字符函数 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个 replace(char1, search_string, replace_string) instr(C1,C2,I,J) -->判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指
271 0
|
Oracle 关系型数据库 索引
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库
oracle常用函数
一、运算符算术运算符:+ - * / 可以在select 语句中使用连接运算符:|| select deptno|| dname from dept; 比较运算符:> >= = != < select sysdate ,to_char(sysdate,'hh') from dual;       ...
935 0
|
Oracle 关系型数据库 数据库
Oracle的函数
函数对字段进行处理: 一、字符函数 lower(char):将字符串转换为小写的格式 upper(char):将字符串转换为大写的格式 length(char):返回字符串的长度 substr(char,m,n):取字符...
924 0
|
Oracle 关系型数据库 SQL
Oracle - 函数
Oracle - 函数 一、单行函数 1、单行函数的特点:     > 操作数据对象     > 接收参数返回一个结果     > 只对一行进行变换     > 每行返回一个结果     > 可以转换数据类型 ...
922 0