oracle函数

oracle递归函数

两盒软妹~` 提交于 2020-03-17 05:39:46
oracle start with connect by 使用方法 oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句使用方法 connect by 是结构化查询中用到的,其基本的语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'HBHqfWGWPy' connect by prior org_id = parent_id; 简单说来是将一个树状结构存储在一张表里,比方一个表中存在两个字段: org_id,parent_id那么通过表示每一条记录的parent是谁,就能够形成一个树状结构。 用上述语法的查询能够取得这棵树的全部记录。 当中: 条件1 是根结点的限定语句,当然能够放宽限定条件,以取得多个根结点,实际就是多棵树。 条件2 是连接条件,当中用PRIOR表示上一条记录,比方 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。 条件3 是过滤条件,用于对返回的全部记录进行过滤。 简介例如以下:

ORACLE中日期和时间函数汇总

邮差的信 提交于 2020-03-16 08:45:30
在oracle中处理日期大全 TO_DATE格式 Day: dd number 12 dy abbreviated fri day spelled out friday ddspth spelled out, ordinal twelfth Month: mm number 03 mon abbreviated mar month spelled out march Year: yy two digits 98 yyyy four digits 1998 24小时格式下时间范围为: 0:00:00 - 23:59:59.... 12小时格式下时间范围为: 1:00:00 - 12:59:59 .... 1. 日期和字符转换函数用法(to_date,to_char) 2. select to_char( to_date(222,'J'),'Jsp') from dual 显示Two Hundred Twenty-Two 3. 求某天是星期几 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 星期一 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

oracle pl/sql 简介

别等时光非礼了梦想. 提交于 2020-03-16 04:09:47
一、pl/sql 是什么 pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。 pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。 二、为什么要学pl/sql 1.提高应用程序的运行性能 2.模块化的设计思想(分页的过程,订单的过程,转账的过程。。) 3.减少网络传输量 4.提高安全性(sql会包括表名,有时还可能有密码,传输的时候会泄露。PL/SQL就不会) 三、Oracle为什么在PL/SQL developer执行很快,用c# oracleclient执行就慢 因为PL/SQL这门语言是专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。 而c#语言是微软的产品,它在连接ORACLE的时候先存到“连接池”中,所以第一次会慢点,但是当你的Web程序没有重起的时候,以后的速度就不会慢了。 四、使用pl/sql的缺点 移植性不好(换数据库就用不了) 五、pl/sql理解 1)、存储过程、函数、触发器是pl/sql编写的 2)、存储过程、函数、触发器是存在oracle中的 3)、pl/sql是非常强大的数据库过程语言 4)、存储过程、函数可以在java中调用 六

Oracle的where子句

有些话、适合烂在心里 提交于 2020-03-15 11:55:20
目录 一、生成测试数据 二、where子句的语法 三、逻辑运算符 四、比较运算符 五、where子句的高级用法 六、对where子句的列使用运算和函数 1、对列进行运算 2、对列使用函数 3、存在的问题 七、版权声明 where子句用于从表中或临时数据集中查找满足指定条件的记录,可用于select、update和delete语句中的条件。 一、生成测试数据 用以下SQL创建超女基本信息表(T_GIRL),插入一些测试数据。 create table T_GIRL ( id char(4) not null, -- 编号 name varchar2(10) not null, -- 姓名 yz varchar2(10) null, -- 颜值 sc varchar2(10) null, -- 身材 weight number(4,1) not null, -- 体重 height number(3) not null, -- 身高 birthday date not null, -- 出生时间 memo varchar2(1000) null -- 备注 ); insert into T_GIRL(id,name,yz,birthday,sc,weight,height,memo) values('0101','西施','漂亮',to_date('2000-01-01 01:12

Oracle CASE WHEN 用法介绍

一笑奈何 提交于 2020-03-14 15:34:39
1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/ ELSE NULL END) 男生数, COUNT (CASE WHEN sex = 2 THEN 1 ELSE NULL END) 女生数 FROM students GROUP BY grade; 2.3 WHERE CASE WHEN 用法 SELECT T2.*, T1.* FROM T1, T2 WHERE (CASE WHEN T2.COMPARE_TYPE = 'A' AND T1.SOME_TYPE LIKE 'NOTHING%' THEN 1 WHEN T2.COMPARE_TYPE != 'A' AND T1.SOME_TYPE NOT LIKE 'NOTHING%' THEN 1 ELSE 0 END) =

Oracle存储过程、函数、包加密wrap

心不动则不痛 提交于 2020-03-14 04:46:28
wrap加密可以将PL/SQL的代码实现部分隐藏,提高代码的安全性,如存储过程、函数、包等都隐藏。 wrap加密的方法有两种,下面以函数为例分别介绍一下: 方法一: 编写好函数后保存到 d:\testWrap.sql 文件 CREATE OR REPLACE FUNCTION testwrap RETURN VARCHAR2 IS BEGIN RETURN(to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss')); END testwrap; 打开cmd命令窗口,执行如下命令 D:\>dir test* 驱动器 D 中的卷没有标签。 卷的序列号是 A5EB-573A D:\ 的目录 2019/06/10 17:22 132 testwrap.sql 1 个文件 132 字节 0 个目录 184,808,128,512 可用字节 D:\>wrap iname=testwrap.sql PL/SQL Wrapper: Release 11.2.0.4.0- 64bit Production on 星期一 6月 10 17:25:03 2019 Copyright (c) 1993, 2009, Oracle. All rights reserved. Processing testwrap.sql to testwrap.plb D:\>dir test*

Oracle --存储函数和存储过程

时间秒杀一切 提交于 2020-03-13 13:55:28
oracle提供可以将pl/sql程序块存储在数据库中,并可以在任何地方运行它,这种pl/sql程序块称为存储过程或函数。 存储过程和函数的区别:函数需要向调用者返回数据,而过程不需要返回数据。 1.创建函数 create or replace function getAllSalary(i_cstmId in t_consumption.csptn_id%type) return number is v_sum number; begin select sum(amount) into v_sum from t_consumption tcm where tcm.cstm_id = i_cstmId; return v_sum; end getAllSalary; 调用函数 在函数或存储过程里面均可调用函数 declare v_mount number; begin --SQL语句 v_mount := getAllSalary(100000001); end; 2.创建存储过程 create or replace procedure getAllSalary(i_cstmId in t_consumption.csptn_id%type, o_amount number) is v_sum number; begin select sum(amount) into v_sum

oracle instr函数使用

本秂侑毒 提交于 2020-03-12 19:33:02
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) : 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。 一、语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 1>参数分析:   ①string1:源字符串,要在此字符串中查找。 ②string2:要在string1中查找的字符串.   ③start_position:代表string1 的哪个位置开始查找。 注:此参数可选,如果省略默认为1. 字符串索引从1开始。 如果此参数为正,从左到右开始检索。 如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。   ④nth_appearance:代表要查找第几次出现的string2. 注:此参数可选,如果省略,默认为 1.如果为负数系统会报错。 注意:如果String2在String1中没有找到,instr函数返回0. 2>示例:   SELECT instr('syranmo','s') FROM dual; -- 返回 1   SELECT instr('syranmo','ra') FROM dual; -- 返回 3   SELECT instr('syran mo','a'

oracle instr用法

落花浮王杯 提交于 2020-03-12 19:32:27
   在oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。 语法: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 参数:   string1   源字符串,要在此字符串中查找。   string2   要在string1中查找的字符串.   start_position   代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。   nth_appearance   代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。   注意:   如果String2在String1中没有找到,instr函数返回0. 来源: https://www.cnblogs.com/dsfblog/p/3824269.html

Oracle 函数

徘徊边缘 提交于 2020-03-12 19:31:35
instr函数 INSTR   (源字符串, 目标字符串, 起始位置, 匹配序号)   在 Oracle /PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始   到字符的结尾就结束。   语法如下:   instr( string1, string2 [, start_position [, nth_appearance ] ] )   参数分析:   string1  源字符串,要在此字符串中查找。   string2 要在string1中查找的字符串.   start_position  代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。   nth_appearance  代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。   注意:   如果String2在String1中没有找到,instr函数返回0.   示例:   SELECT instr('syranmo','s') FROM dual; -- 返回 1   SELECT instr('syranmo','ra') FROM dual; -- 返回 3   1 SELECT