oracle函数

oracle 截取字符(substr),检索字符位置(instr)

百般思念 提交于 2020-01-01 05:33:15
常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_position 开始位置(从0开始) length 可选项,子字符串的个数 For example: substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 2.INSTR(string,subString,position,ocurrence)查找字符串位置 解释:string:源字符串 subString:要查找的子字符串 position:查找的开始位置 ocurrence:源字符串中第几次出现的子字符串 For example: INSTR('CORPORATE FLOOR','OR', 3,

Oracle的substr函数简单用法

我只是一个虾纸丫 提交于 2020-01-01 05:32:38
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) //返回结果为 'ello' substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符 测试: select substr('Hello World',-3,3) value from dual; 附:java中substring(index1,index2)的简单用法 作用:从字符串索引(下标)为index1的字符开始截取长度为index2-index1 的字符串。 String str="Hello World"; System.out.println(str.substring(0,5)); 打印结果为:Hello 引用原文: http://www.cnblogs.com/nicholas_f/articles/1526063.html 写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,文章可以转载,无需版权。希望尽自己的努力

oracle之索引

泪湿孤枕 提交于 2020-01-01 05:03:37
索引 11.1 索引结构及特点 两大类:B树索引,2)位图索引 11.1.1 B树索引结构(图),介绍根节点,分支节点,叶子节点,以及表行,rowid,键值,双向链等概念。 考点: 1)叶块之间使用双向链连接, 2)删除表行时索引叶块也会更新,但只是逻辑更改,并不做物理的删除叶块。 3)索引叶块中不保存表行键值的null信息。 11.1.2 位图索引结构: 位图索引适用于离散度较低的列,它的叶块中存放key, start rowid-end rowid,并应用一个函数把位图中相应key值置1,位图索引在逻辑or时效率最高。 SQL>create bitmap index job_bitmap on emp1(job); 值/行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 --------------------------------------------------------------- ANALYST 0 0 0 0 0 0 0 1 0 0 0 0 1 0 CLERK 1 0 0 0 0 0 0 0 0 0 1 1 0 1 MANAGER 0 0 0 1 0 1 1 0 0 0 0 0 0 0 PRESIDENT 0 0 0 0 0 0 0 0 1 0 0 0 0 0 SALESMAN 0 1 1 0 1 0 0 0 0 0 0 0 0 0 SQL

Oracle 9i与MS SQL Server 2000之比较连载五

邮差的信 提交于 2020-01-01 02:39:30
四、 Oracle 中新的数据库对象: 实例化视图、快照、序列、程序包、同义词、抽象的数据类型 ● 实例化视图 又称显形图:实例化说明它有自己的存储空间,视图说明它的数据来源于其它表数据。实例化视图中的数据,设置为隔一段时间更新数据,更新的模式可以定义为完全更新和增量更新 ● 快照 基本上同实例化视图,只不过数据来源不同,快照数据来源于远程数据库,而实例化视图则来源于本地数据表 ● 序列 ,相当于 MS SQL 中的 identity 列,它是一个数字顺序列表,下面有详细介绍。 ● 程序包 ,它是过程、函数、全局变量的集合,它封装了私有变量、私有过程和私有函数,如 :dbms-out 包 ● 同义词 ,是对数据库中的对象的别名,同义词可以是全局的也可以是私有的(属于某个用户的)如: Tab 、 col 等 ● 抽象的数据类型,类似于 C 中的结构体或 Pascal 记录类型。 五、 Oracle 回滚段和 SQL Server 的数据库事务日志文件 回滚段提供了事物回滚需要使用的数据变化以前的映象,这些映象是按条目存储的,如果这些条目过少,一个事务等待另一个事务的几率增大,就会影响数据库的性能。缺省安装时,提供一个系统回滚段,它在 system 表空间。为了提高性能, system 表空间不应存储有任何数据字典信息以外的信息。每次启动时, Oracle RDBMS 执行自动恢复

oracle PL/SQL编程

a 夏天 提交于 2020-01-01 01:09:54
实验5:PL/SQL编程 实验目的: 了解PL/SQL语言结构 了解PL/SQL变量和常量的声明和使用方法 学习条件语句的使用方法 学习分支语句的使用方法 学习循环语句的使用方法 学习常用的PL/SQL函数 学习包,过程,函数的用法。 用户名:shuijingyelong_1 实验场景: 假设有一个生产某个产品的单位,单位接受网上订单进行产品的销售。通过实验模拟这个单位的部分信息:员工表,部门表,订单表,订单详单表。 本实验以实验四为基础 实验内容: 创建一个包(Package),包名是MyPack。 create or replace PACKAGE MyPack IS FUNCTION SaleAmount ( V_DEPARTMENT_ID NUMBER ) RETURN NUMBER ; END MyPack ; 在MyPack中创建一个函数SaleAmount ,查询部门表,统计每个部门的销售总金额,每个部门的销售额是由该部门的员工(ORDERS.EMPLOYEE_ID)完成的销售额之和。函数SaleAmount要求输入的参数是部门号,输出部门的销售金额。 PROCEDURE GET_EMPLOYEES ( V_EMPLOYEE_ID NUMBER ) AS LEFTSPACE VARCHAR ( 2000 ) ; begin --通过LEVEL判断递归的级别

ORACLE中DBMS_SQL的用法

こ雲淡風輕ζ 提交于 2019-12-30 18:37:52
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于一般的select操作,如果使用动态的sql语句则需要进行以下几个步骤: open cursor---> parse---> define column---> excute---> fetch rows---> close cursor; 而对于dml操作(insert,update)则需要进行以下几个步骤: open cursor---> parse---> bind variable---> execute---> close cursor; 对于delete操作只需要进行以下几个步骤: open cursor---> parse---> execute---> close cursor; www.2cto.com 例一: create table test(n_id number, v_name varchar2(50), d_insert_date date); alter table test add constraint pk_id primary key(n_id); declare v_cursor number; v_sql varchar2(200); v_id number; v_name varchar2(50); v_date date; v_stat number; begin

二十、oracle通过复合索引优化查询及不走索引的8种情况

此生再无相见时 提交于 2019-12-30 04:18:16
1. 理解ROWID   ROWID是由Oracle自动加在表中每行最后的一列伪列,既然是伪列,就说明表中并不会物理存储ROWID的值;你可以像使用其它列一样使用它,只是不能对该列的值进行增、删、改操作;一旦一行数据插入后,则其对应的ROWID在该行的生命周期内是唯一的,即使发生行迁移,该行的ROWID值也不变。 SELECT t.rowid,t.* FROM DM_COMM_PREM_LIST t where LIST_ID= '3106355531'; 2. SQL优化器优化方式 1)基于规则的优化器RBO(Rule-Based Optimization)   RBO有严格的使用规则,只要按照这套规则去写SQL语句,无论数据表中的内容怎样,也不会影响到你的执行计划;换句话说,RBO对数据“不敏感”,它要求SQL编写人员必须要了解各项细则;RBO一直沿用至ORACLE 9i,从ORACLE 10g开始,RBO已经彻底被抛弃。 2)基于成本的优化器CBO(Cost-Based Optimization) CBO是一种比RBO更加合理、可靠的优化器,在ORACLE 10g中完全取代RBO;CBO通过计算各种可能的执行计划的“代价”,即COST,从中选用COST最低的执行方案作为实际运行方案;它依赖数据库对象的统计信息,统计信息的准确与否会影响CBO做出最优的选择,也就是对数据“敏感”

跟我一起学Oracle 11g【7】----SQL 基础学习

纵饮孤独 提交于 2019-12-29 16:34:46
前言 数据的作业不仅仅是存放数据,它的更重要的作用是根据用户的需求(也就是条件)来显示用户所需要的数据。 本章详细介绍select语句、DMT语句、事物控制等等知识。 一。SQL语言概述 SQL(Structured Query Language,结构化查询语言),用来实现关系运算中的查询、选择等操作,是一个综合的、功能极强同时也是一种简单易学的语音。 1.1 SQL 语言的特点 SQL语言采用集合操作方式,对数据的处理是成组进行的 执行SQL语句时,每次只能发送并处理一条语句 执行SQL语句时,用户只需要知道逻辑含义,无需关心SQL的具体执行 1.2 SQL语言分类 ①查询语言 比如select ②数据操纵语言(Data Manipulation Lanuage,DMT) Insert Update Delete Merge(合并 插入 修改) ③数据定义语言(Data Definition Language,DDL) Create Drop Rename Truncate(删除表的全部内容) ④事物控制(Transaction Control ,TC)语句 Commit 永久性的保存对行所做的修改 Rollback 取消对行所做的修改 Savepoint 设置一个“保存点”,可以将对行的修改回滚到此处 ⑤数据控制语言(Data Control Language,DCL)

ORACLE基本数据类型总结

老子叫甜甜 提交于 2019-12-29 10:23:03
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。 在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。 查看数据库视图所包含的数据类型:SELECT * FROM DBA_TYPES WHERE OWNER IS NULL.具体细节情况参见 Oracle® Database SQL Language Quick Reference 10/11 g 或 官方文档 一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中

Oracle基本数据类型

大兔子大兔子 提交于 2019-12-29 10:22:42
一 字符串类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种. 所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。 所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。 1.1:CHAR类型 CHAR(size [BYTE | CHAR]) CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节,你可以查看数据库参数 NLS_LENGTH_SEMANTICS的值。 SQL Code SQL> show parameter nls_length_semantics; NAME TYPE VALUE ------------------ ----------- -----------------