Oracle函数

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

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

1. 该函数接受3个可选参数,返回3个数字的和
CREATE OR REPLACE FUNCTION add_three_numbers
(
a NUMBER:=0, b NUMBER:=0, c NUMBER:=0
)
RETURN NUMBER IS
BEGIN
RETURN a+b+c;
END;
2.函数的调用:



函数的语法及举例:

1.function函数的语法如下:

      create or replace function function_name (

       argu1 [mode1] datatype1, --定义参数变量

       argu2 [mode2] datatype2 --定义参数变量

   ) return datatype --定义返回的数据类型

  is

  begin

  end;

执行 var v1 varchar2(100)        exec :v1:=function_name

2.不带任何参数的定义

create or replace function get_user

return varchar2

is

Result varchar2(50); --定义变量

begin

select username into Result from user_users;

return(Result); --返回值

end get_user;

3.带有in参数的

create or replace function get_sal(

empname in varchar2

) return number

is

Result number;

begin

select sal into Result from emp where ename=empname;

return(Result);

end;

执行: SQL> var sal number  SQL> exec :sal:=get_sal('scott');

4.带out参数的

create or replace function get_info(

e_name varchar2,

job out varchar2

) return number

Is

Result number;

begin

select sal,job into Result,job from emp where ename=e_name; return(Result); end;

执行:
SQL> var job varchar2(20) 
SQL> var dname varchar2(20) 
SQL> exec :dname:=get_info('SCOTT',:job)

Tips:
前两天看到有人在pub上问sqlplus中通过define和variable定义的变量的区别。其实define定义的我
理解不是变量而是字符常量,通过define定义之后,在通过&或者&&引用的时候不需要输入了,仅此而已。
oracle在执行的时候自动用值进行了替换;而variable定义的是绑定变量

http://blog.csdn.net/wanghai__/article/details/4778343

 

相关文章
|
4月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
45 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle之regexp系列函数详解
Oracle之regexp系列函数详解
143 1
|
7月前
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
68 0
|
3月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
38 0
|
3月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
66 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
6天前
|
Oracle 算法 关系型数据库
Oracle常用系统函数之数字类函数:数字的魔术师
【4月更文挑战第19天】Oracle数据库中的数字类函数是数字处理的魔术师,包括`ROUND`(四舍五入),`CEIL`和`FLOOR`(向上/下取整),以及`ABS`(计算绝对值)。还有`MOD`、`TRUNC`和`POWER`等函数,提供求余数、截断和计算幂的功能。熟练运用这些函数能提升数据管理效率,让处理数字变得更简单、有趣。
|
2月前
|
SQL Oracle 关系型数据库
Oracle查询优化-聚集函数
【2月更文挑战第5天】【2月更文挑战第13篇】聚集函数
19 4
|
3月前
|
存储 SQL Java
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(一)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
35 0
|
3月前
|
SQL Oracle 算法
Oracle函数
Oracle函数
98 1
|
4月前
|
SQL Oracle 关系型数据库
Oracle之有哪些日期计算函数?
Oracle之有哪些日期计算函数?
114 0