oracle函数

Oracle数据类型

自闭症网瘾萝莉.ら 提交于 2019-12-29 10:22:23
Oracle数据类型 数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 Oracle推荐使用VARCHAR2 NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。

Oracle 数据类型详解

社会主义新天地 提交于 2019-12-29 10:22:05
数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 Oracle推荐使用VARCHAR2 NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。 在Oracle9i中

Oracle数据类型

时间秒杀一切 提交于 2019-12-29 10:21:46
数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 Oracle推荐使用VARCHAR2 NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。 在Oracle9i中

Oracle超详细笔记3--数据库管理

廉价感情. 提交于 2019-12-27 11:52:07
一、数据库创建 利用图形界面DBCA(数据库配置向导)创建数据库。 DBCA(DataBase Configuration Assistant)是一款图形化用户界面工具,重要用来帮助数据库管理员快速直观地创建数据库。单击“开始/程序/ Oracle - OraDb11g_home1/配置和移植工具/ Database Configuration Assistant”命令 二、SQL*Plus概述 SQL*Plus是Oracle提供的访问数据库服务器的工具软件,是Oracle的核心产品。SQL指结构化查询语言;Plus指Oracle将标准SQL语言进行扩展,提供另外一些Oracle服务器能够接受和处理的命令。通过SQL*Plus直接存取Oracle数据库,包括数据提取、数据库结构的修改和数据库对象的管理。 SQL*Plus具有很强的功能,其主要 作用如下 : 输入、编辑、存取和运行SQL命令。 测试SQL、PL/SQL程序段的正确性。 对查询结构进行格式化、计算、存储、打印或生成网络输出。 向其他客户端用户发送消息或接收反馈信息。 管理和维护数据库。 SQL*Plus连接数据库 : AS: 用来指定管理权限,可选值有SYSDBA,SYSOPER和SYSASM. SYSDBA权限具有SYSOPER的所有权限,另外还能够创建数据库

mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析

穿精又带淫゛_ 提交于 2019-12-26 19:28:21
首先根据这篇文章:http://www.cnblogs.com/coolzdp/p/7717332.html 我们知道存储过程中 SELECT * INTO 如果没有记录是不会往下执行的 ,直接抛出NO_DATA_FOUND异常, 这个在 plsql developer中直接测试执行没问题 ,会报ORA-1403异常。 但是在 mybatis中调用的话就不会抛出 NO_DATA_FOUND异常 , 而是在select * into语句为空时默默的终止执行该过程 。 在服务层采用事务处理的话就有问题了,服务层调用 select * into为空的存储过程处理逻辑肯定是有毛病的,本来应该抛出异常扔给控制器层, 现在只是终止了,后面的语句还会执行,这样就不对了。 我猜测是 mybatis针对 NO_DATA_FOUND异常 做了过滤,捕获后不再抛出了 。 我的处理方法就是如果有select into, 在plsql过程最后 手动捕获 NO_DATA_FOUND异常 ,抛出自定义异常 : EXCEPTION WHEN NO_DATA_FOUND THEN raise_application_error('-20000', 'select into没找到数据'); 如果是那种需要提示给用户指出select into必须有记录的原因那么就老老实实的用下面的语句吧: SELECT COUNT(*

oracle max()函数和min()函数

我的未来我决定 提交于 2019-12-26 16:04:06
当需要了解一列中的最大值时,可以使用MAX()函数;同样,当需要了解一列中的最小值时,可以使用MIN()函数。语法如下。 SELECT MAX (column_name) / MIN (column_name) FROM table_name 说明:列column_name中的数据可以是数值、字符串或是日期时间数据类型。MAX()/MIN()函数将返回与被传递的列同一数据类型的单一值。 实例7 MAX()函数的使用 查询TEACHER表中教师的最大年龄。实例代码: SELECT MAX (AGE) AS MAXAGE FROM TEACHER 运行结果如图1示。 图1TEACHER表中教师的最大年龄 然而,在实际应用中得到这个结果并不是特别有用,因为经常想要获得的信息是具有最大年龄的教师的教工号、姓名、性别等信息。 然而SQL不支持如下的SELECT语句。 SELECT TNAME, DNAME, TSEX, MAX (AGE) FROM TEACHER 因为聚合函数处理的是数据组,在本例中,MAX函数将整个TEACHER表看成一组,而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义。同样的道理,下面的代码也是无效的。 SELECT TNAME, DNAME, TSEX,SAL ,AGE FROM TEACHER WHERE AGE=MAX

oracle数据类型详解

走远了吗. 提交于 2019-12-26 12:28:04
数据库中创建表,常见类型总结: 见一个大神总结的很全: 一、数据类型 1.char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) 2.varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库 系统 接受的字符集标准)中的所有符号。 如果数据长度没有达到最大值n, Oracle 8i会根据数据大小自动调节字段长度, 如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。 可做索引的最大长度3209。 3.number(m,n) m=1 to 38n=-84 to 127 可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。 如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。 如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。 如:number(3,0),输入575.316,真正保存的数据是575。 4.date 无 从公元前4712年1月1日到公元4712年12月31日的所有合法日期, Oracle

oracle 行转列解释与实例

痞子三分冷 提交于 2019-12-26 07:52:33
oracle 行转列实例 相关函数 -- oracle 中decode函数 语法 DECODE ( expr , search , result [ , search , result ] . . . [ , default ] ) 即DECODE ( value , if1 , then1 , if2 , then2 , if3 , then3 , . . . , else ) -- 解释 DECODEexpr逐个比较每个search值。如果expr等于 search,则Oracle Database 返回相应的result。如果未找到匹配项,则Oracle返回 default 。如果 default 省略,则Oracle返回 null 。 参数可以是任何数值类型(的NUMBER,BINARY_FLOAT或BINARY_DOUBLE),或字符类型。 如果expr和search是字符数据,那么Oracle使用nonpadded比较语义对它们进行比较。expr,search和result可以是任何数据类型的 CHAR ,VARCHAR2, NCHAR ,或NVARCHAR2。返回的字符串是VARCHAR2数据类型,与第一个result参数的字符集相同。 如果第一search - result对是数字,则Oracle比较所有search - result表达式

Oracle易忘知识点记录

一个人想着一个人 提交于 2019-12-26 03:09:00
1、 SQL Select语句完整的执行顺序: ①from子句组装来自不同数据源的数据; ②where子句基于指定的条件对记录行进行筛选; ③group by子句将数据划分为多个分组; ④使用聚集函数进行计算; ⑤使用having子句筛选分组; ⑥计算所有的表达式; ⑦使用order by对结果集进行排序。 ⑧select 集合输出。 Having与Where的区别 * where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。 * having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。 2、 创建索引(CREATE INDEX)时,将索引分配到专门的索引空间;对于有实时数据改变的表,需要在最后加上online关键字,就不会阻塞DML语句。 CREATE INDEX index_nm ON table_nm(col_nm) TABLESPACE tablespace_nm ONLINE; 3、其他 在sql脚本中创建存储过程时,存储过程部分代码结束后,在其下一行加一个反斜杠 / ,表示存储过程结束,防止oracle将下面的其他sql语句当成存储过程的一部分。

oracle 特殊字符& 处理

橙三吉。 提交于 2019-12-25 20:40:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天在导入一批数据到Oracle时,碰到了一个问题:Toad提示要给一个自定义变量AMP赋值,一开始我很纳闷,数据是一系列的Insert语句,怎么会有自定义变量呢?后来搜索了一下关键字AMP发现,原来是因为在插入数据中有一个字段的内容如下: http://mobile.three.com.hk/3DX?uid=0676 & sid=rt_060908 Oracle把这里的URL的参数连接符&当成是一个自定义变量了,所以要求我给变量AMP赋值。怎么办呢?方法有三: ·方法一:在要插入的SQL语句前加上Set define off;与原SQL语句一起批量执行 我们在SQL*PLUS下执行 SQL> show all命令时,可以发现一个参数:define "&" (hex 26),如下图所示 ...... concat "." (hex 2e) copycommit 0 copytypecheck ON define "&" (hex 26) describe DEPTH 1 LINENUM OFF INDENT OFF echo OFF ...... 这个是Oracle里面用来识别自定义变量的设置,现在我们在SQL*PLUS下将其关闭: SQL> Set define OFF; 然后再次执行导入脚本,OK!问题搞定