在使用ORACLE过程中,把一些常用的函数的相关用法,注意事项进行简单的汇总,便于自己查询参考。

  • DBMS_RANDOM包

dbms_random是一个可以生成随机数值或者字符串的程序包。这个包有initialize()、seed()、terminate()、value()、normal()、random()、string()等几个函数

  1. value() 用于返回两个数值之间的随机数,value(low,high)
  2. random() 返回的值介于2的31次方和-2的31次方之间的整形数值
  3. dbms_random.send方法

    用于生成一个随机数种子,设置种子的目的是可以重复生成随机数,用于调试。否则每次不同,难以调度。

  4. dbms_random.normal方法

    NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。

  • EXECUTE IMMEDIATE

解析并马上执行动态语句 ,或非运行时创建的pl/sql块

1. 不提交dml事务,要显式提交;

execute immediate处理ddl,会提交所以以前改变的数据;

2.不支持多行查询,可以临时表 或者ref cursors

3.执行sql不需语句,执行pl/sql 要加分号;

--0.传入

declare

i_aac001 number(6):=111;

begin

execute immediate 'insert into a2(aac001) values(:1)'

using i_aac001;

end;

insert into a2(aac001) values(1);

insert into a2(aac001) values(2);

--1.传入/传出

declare

cnt number(6);

begin

execute immediate 'select 1 from dual where 1=:1' into cnt

using cnt;

dbms_output.put_line(cnt);

end;

--2.调用存储过程

declare

s1 varchar2(10);

s2 varchar2(10);

begin

execute immediate 'begin test1(:1,:2); end;'

using s1,s2;

end;

--3.传值到记录

declare

--类型

--声明

type type_a is record(str varchar2(10));

v_a type_a;

v_b a2%rowtype;

begin

execute immediate 'select * from a2 where aac001=1742178'

into v_b;

end;

--4.多行查询 用临时表 或ref cursors

declare

l_sal    pls_integer := 2000;

begin

execute immediate 'insert into temp(empno, ename) ' ||

'           select empno, ename from emp ' ||

'           where   sal > :1'

using l_sal;

commit;

end;

http://baiyaoming.iteye.com/blog/1255016

for in  变量声明类型

-------------------------------

declare

cursor cur is select * from a2;

begin

for c in (select * from a2) loop

dbms_output.put_line(c.aac002);

end loop;

end;

insert into a2(aac001) values(1);

declare

type t_a is table of a2%rowtype;

type t_b is table of number(10) index by pls_integer;

v_a t_a;

v_b t_b;

begin

select aac001 bulk collect into v_b from a2;

for i in v_b.first..v_b.last loop

dbms_output.put_line(v_b(i));

end loop;

end;

  • REPLACE函数

replace(x,y,z)返回值为将串X中的Y串用Z串替换后的结果字符串。若省略Z参数,则将串X中为Y串的地方删除

  • TRUNC函数

TRUNC函数返回以指定元素格式截去一部分的日期值。

其具体的语法格式如下:
TRUNC(date,[fmt])
其中:
date 为必要参数,是输入的一个日期值
fmt 参数可忽略,是日期格式,用以指定的元素格式来截去输入的日期值。忽略它则由最近的日期截去
下面是该函数的使用情况:
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.
fmt值参考如下:
Unit
Valid format parameters
Year
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y
ISO Year
IYYY, IY, I
Quarter
Q
Month
MONTH, MON, MM, RM
Week
WW
IW
IW
W
W
Day
DDD, DD, J
Start day of the week
DAY, DY, D
Hour
HH, HH12, HH24
Minute
MI

ORACLE常用函数汇总(持续更新中....)的更多相关文章

  1. php 常用函数集合(持续更新中...)

    php 常用函数集合 在php的开发中,巧妙的运用php自带的一些函数,会起到事半功倍的效果,在此,主要记录一些常用的函数 1.time(),microtime()函数 time():获取当前时间戳 ...

  2. Oracle数据库常用函数使用--持续更新中

    NVL函数.NVL( string1, replace_with).如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值. INSTR函数.用于查找指定字符串是 ...

  3. oracle 常用指令(持续更新中....)

    1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_nam ...

  4. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. 《WCF技术剖析》博文系列汇总[持续更新中]

    原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...

  6. AngularJS进阶(十二)AngularJS常用知识汇总(不断更新中....)

    AngularJS常用知识汇总(不断更新中....) 注:请点击此处进行充电! app.controller('editCtrl',['$http','$location','$rootScope', ...

  7. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

  8. 【github&&git】4、git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  9. 痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手 ...

  10. JavaScript中常用函数(入门级)(持续更新)

    本文中枫竹梦介绍一些JavaScript中入门级的常用函数,对于已经过了入门的童鞋可选择略过,都是一些非常实用的函数.如果发现什么问题,欢迎讨论. 问题列表 Q1: 设计一个函数repeatIt(st ...

随机推荐

  1. 2019.3.25 SQL语句(进阶篇1)

    运算符 基本的加减乘除取余都可以在SQL中使用 新建Employee1表并添加数据 create table Employee1 (eid int primary key auto_increment ...

  2. bugzilla配置邮箱发送邮件问题

    2018-09-25 1.bugzilla注册账号,邮件无法发送 需要登录管理账号,配置邮箱服务 2.Can't locate object method "quit" via p ...

  3. Linux批量杀掉挂掉的进程

    $ `ps aux | grep test | grep -v grep | awk '{print $2}'` 杀掉含有test且不含有grep的进程,后面的 awk '{print $2}' 是进 ...

  4. vue生命周期及使用 && 单文件组件下的生命周期

    生命周期钩子 这篇文章主要记录与生命周期相关的问题. 之前,我们讲到过生命周期,如下所示: 根据图示我们很容易理解vue的生命周期: js执行到new Vue() 后,即进入vue的beforeCre ...

  5. OpenLayers3之ol.control.ZoomToExtent

    controls: ol.control.defaults().extend([new ol.control.ZoomToExtent({ extent:[Number(box[]), Number( ...

  6. [转]v$parameter, v$parameter2, v$system_parameter, v$system_parameter2, v$spparameter区别

    本文转自:http://blog.csdn.net/huang_xw/article/details/617389 1 v$parameter v$parameter显示的是session级的参数. ...

  7. SpringSecurity 3.2入门(3)单用户登录

    1.增加web.xml文件配置如下 <!-- 获取Spring Security session的生命周期,这个监听器会在 session 创建和销毁的时候通知 Spring Security ...

  8. Java集合篇六:Map中key值不可重复的测试

    package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 publi ...

  9. time&datetime模块

    在Python中,和时间处理相关的模块有time,datatime,calendar(不常用)三个. UTCC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间, ...

  10. html-框架标签的使用

    <frameset> - rows:按照行进行划分 ** <frameset rows="80,*"> - cols:按照列进行划分 ** <fram ...