oracle 函数function语法及简单实例
函数调用限制
1、SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数
2、SQL只能调用带有输入参数,不能带有输出,输入输出函数
3、SQL不能使用PL/SQL的特有数据类型(boolean,table,record等)
4、SQL语句中调用的函数不能包含INSERT,UPDATE和DELETE语句
1.function函数的语法:
create or replace function function_name ( argu1 [mode1] datatype1, --定义参数变量mode: in or out argu2 [mode2] datatype2 --定义参数变量 ) return datatype --定义返回的数据类型 is begin end;
执行:
var v1 varchar2(100) exec :v1:=function_name 或 select function_name from dual;
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_POIALL( 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'); 或者 select GET_POIALL('0') from dual;
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)