函数调用限制

  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;

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)

5.函数调用举例

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语句。

oracle function用法(本文来自百度文库)的更多相关文章

  1. 知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)        (3)全外连接(左右 ...

  2. Oracle的执行计划(来自百度文库)

    如何开启oracle执行计划 http://wenku.baidu.com/view/7d1ff6bc960590c69ec37636.html怎样看懂Oracle的执行计划 http://wenku ...

  3. loadrunner11 安装及破解教程来自百度文库

    http://wenku.baidu.com/link?url=wSdgdZPzSNkftIqPmuz2rLKJ0M7Q3RrfSEdqcoRzfVDMIikj_7OLmLZWgoCiBev3AxvN ...

  4. oracle function用法

    函数调用限制1.SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数2.SQL只能调用带有输入参数,不能带有输出,输入输出函数3.SQL不能使用PL/SQL的特有数据类型(boolean, ...

  5. JS代码下载百度文库纯文本文档

    下载百度文库纯文本文档流程 1.按 F12 或  Ctrl+Shift+I打开后台(或点击右键,在点击检查)[建议使用谷歌浏览器] 2.切换到控制台,赋值粘贴以下js代码,回车后,浏览器将自动下载保存 ...

  6. 利用FlashPaper实现类似百度文库功能

    最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将 ...

  7. 将word转化为swf 进行如同百度文库的般阅读

    实现如同百度文库那样类似功能需要进行一系列转化,一般流程想将word转化为pdf格式,再将pdf格式转化为swf格式.在网页上显示其实都是swf格式内容. 首先将word转化为swf,需要调用com组 ...

  8. [整理]:oracle spool 用法

    本文来自iDB Stock:http://www.idb-stock.net/idb/2011/06/01/153.html 1.spool的作用是什么? spool的作用可以用一句话来描述:在sql ...

  9. js仿百度文库文档上传页面的分类选择器_第二版

    仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同一时候使用多个分类选择器. 此版本号把HTML,CSS,以及图片都封装到"category.js"中.解决因文件路 ...

随机推荐

  1. Git教程摘录

    http://download.csdn.net/download/lianghesgdmv/9893973  教程doc下载 备用-- 链接:http://pan.baidu.com/s/1gfu2 ...

  2. Pytorch版本yolov3源码阅读

    目录 Pytorch版本yolov3源码阅读 1. 阅读test.py 1.1 参数解读 1.2 data文件解析 1.3 cfg文件解析 1.4 根据cfg文件创建模块 1.5 YOLOLayer ...

  3. HDU 6070 Dirt Ratio(分数规划+线段树)

    http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意: 找出一个区间,使得(区间内不同数的个数/区间长度)的值最小,并输出该值. 思路: 因为是要求$\f ...

  4. UVa 1603 破坏正方形

    https://vjudge.net/problem/UVA-1603 题意:有一个火柴棍组成的正方形网格,计算至少要拿走多少根火柴才能破坏所有正方形. 思路:从边长为1的正方形开始遍历,将正方形的边 ...

  5. Navicat+Premium+12+破解补丁

    链接:https://pan.baidu.com/s/1BsEWQ__X-RQPuw2ymfxhtg 提取码:j2kb

  6. MongoDB(课时7 逻辑运算)

    3.4.2.2 逻辑运算 逻辑运算主要三种类型:与($and),或($or),非($not.$nor). 范例:查询年龄在20~21岁的学生信息 db.students.find({"age ...

  7. Unity 4.x 资源打包

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; pu ...

  8. django-celery定时任务以及异步任务and服务器部署并且运行全部过程

    Celery 应用Celery之前,我想大家都已经了解了,什么是Celery,Celery可以做什么,等等一些关于Celery的问题,在这里我就不一一解释了. 应用之前,要确保环境中添加了Celery ...

  9. 『TensorFlow』项目资源分享

    TF中文社区 TF_GOOGLE官方代码学习 1.TensorFlow-Slim TF-Slim 是 tensorflow 较新版本的扩充包,可以简化繁杂的网络定义,其中也提供了一些demo: Ale ...

  10. 『Python』图像金字塔、滑动窗口和非极大值抑制实现

    图像金字塔 1.在从cv2.resize中,传入参数时先列后行的 2.使用了python中的生成器,调用时使用for i in pyramid即可 3.scaleFactor是缩放因子,需要保证缩放后 ...