oracle function用法
来源:互联网 发布:淘宝助理怎么导出图片 编辑:程序博客网 时间:2024/06/16 03:37
函数调用限制
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, --定义参数变量
- 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;
- 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)
5.带in out参数的
6.函数调用举例
- create or replace function f_sys_getseqid(
- v_seqname IN VARCHAR2,
- v_provincecode IN VARCHAR2 --省编码
- ) return Varchar2
- IS
- iv_date VARCHAR2(8);
- iv_seqname VARCHAR2(50);
- iv_sqlstr VARCHAR2(200);
- iv_seq VARCHAR2(8);
- iv_seqid VARCHAR2(16);
- BEGIN
- iv_seqname := LOWER(TRIM(v_seqname));
- iv_sqlstr := 'SELECT '||iv_seqname||'.nextval FROM DUAL';
- EXECUTE IMMEDIATE iv_sqlstr INTO iv_seq;--执行动态的sql语句,执行相似的一组语句
- IF v_seqname = 'SEQ_FUNCROLE_ID' THEN
- iv_seqid:= 'ESS' || LPAD(iv_seq,5,'0');
- ELSE
- SELECT substrb(v_provincecode,1,2)||TO_CHAR(SYSDATE,'yymmdd') INTO iv_date FROM DUAL;
- iv_seqid:= iv_date || LPAD(iv_seq,8,'0');
- END IF;
- RETURN iv_seqid;
- EXCEPTION
- WHEN OTHERS THEN
- RETURN NULL;
- END;
- SELECT TO_NUMBER(F_SYS_GETSEQID('SEQ_TERMTRADE_ID', V_PROVINCE_CODE)) INTO V_BATCH_ID FROM DUAL;
EXECUTE IMMEDIATE的说明:执行动态的sql语句。
转载自:http://www.blogjava.NET/stevenjohn/archive/2012/08/12/385324.html
1 0
- oracle function用法
- oracle function用法
- oracle function用法
- oracle function用法
- oracle管道(pipelined function)函数用法
- Oracle function
- oracle Function
- Oracle Function
- oracle function
- oracle function
- ORACLE function
- oracle function
- oracle function
- oracle function
- oracle function
- oracle---function
- oracle function
- [Oracle Function]使用常用的Oracle Function
- 微信xml解析
- Redis系列~主从复制(十八)
- [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions
- RabbitMQ-三、Java使用--4、主题(Topic)
- ubuntu 安装atom
- oracle function用法
- Android产品研发(八)-->App数据统计
- 29、SSH框架-Spring+Mybatis+SpringMVC+Maven+MySql搭建实例(4)
- 卷积神经网络在自然语言处理的应用
- 深度学习主机配置 gtx1080 + cuda + tensorflow + ubuntu16
- POJ 2001 Shortest Prefixes
- IIS配置勾选
- Javascri表单验证
- Android蓝牙开发浅谈 __ 耳机录音