`
wanjianfei
  • 浏览: 325825 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle PL/SQL的数据类型和常用函数

阅读更多

1)PL/SQL数据类型

名称 类型 说明
NUMBER 数字型 能存放整数值和实数值,并且可以定义精度和取值范围
BINARY_INTEGER 数字型 可存储带符号整数,为整数计算优化性能
DEC 数字型 NUMBER的子类型,小数
DOUBLE PRECISION 数字型 NUMBER的子类型,高精度实数
INTEGER 数字型 NUMBER的子类型,整数
INT 数字型 NUMBER的子类型,整数
NUMERIC 数字型 NUMBER的子类型,与NUMBER等价
REAL 数字型 NUMBER的子类型,与NUMBER等价
SMALLINT 数字型 NUMBER的子类型,取值范围比INTEGER小
VARCHAR2 字符型 存放可变长字符串,有最大长度
CHAR 字符型 定长字符串
LONG 字符型 变长字符串,最大长度可达32,767
DATE 日期型 以数据库相同的格式存放日期值
BOOLEAN 布尔型 TRUE OR FALSE
ROWID ROWID 存放数据库的行号

2.常用函数

   1)处理字符的函数
   ||
   CONCAT ---并置运算符。
   格式∶CONCAT(STRING1, STRING2)
   例:’ABC’|| ’DE’=’ABCDE’
   CONCAT(‘ABC’,’DE’) =’ABCDE’
  
   ASCII---返回字符的ASCII码。
   例:ASCII(‘A’) = 65
  
   CHR---返回指定ASCII码的字符。
   例:CHR(65) = ‘A’
  
   INSTR---搜索子串位置
  格式∶INSTR(STRING , SET[ , 开始位置[ , 出现次数]])
   例∶ INSTR (‘this is a test’ , ‘i’ , 1,2)=6
  
   INITCAP---将字符串每个单词首字母均变为大写
  例: INITCAP(‘this is a test’)=’ This Is A Test’’
  
   LENGTH----计算串长
   格式∶ LENGTH(string)
  
   RPAD,LPAD---右填充、左填充。默认为填充空格。
   格式: RPAD(字符串 , 字符个数 , 填充字符)
  例: RPAD(‘ABC’ , 6 , ’H’)=’ABCHHH’
  
   LTRIM,RTRIM-----左右截断。默认为删除空格。
  格式∶ LTRIM(STRING[,’SET’])
  例∶ LTRIM(‘***tes*t***’ , ’*’)=’ tes*t***’
  
   LOWER----将字符串转换为小写
   格式∶LOWER(string)
  
  UPPER---将字符串转换为大写
   格式∶UPPER(string)
  
  SUBSTR----提取子串。START为正数时从左开始 、为负数时从右开始
  格式∶ SUBSTR(STRING , START [ , COUNT])
  例∶ SUBSTR(‘WORDSTAR’ , 2 , 3)=’ ORD’
  
   REPLACE---搜索指定字符串并替换
   格式∶REPLACE(string , substring , replace_string)
   例∶ REPLACE(‘this is a test’ , ‘this’ , ‘that an’)=’that an is a test’
  
  TRIM---删除字符串前缀或尾随字符
  格式∶TRIM( [LEADING | TRAILING |BOTH] [ trimchar FROM ] string)
   LEADING---删除前缀字符
   TRAILING---删除后缀字符
   BOTH---前后缀字符均删除(默认方式)
   Trimchar---指定删除的字符
  
  注:INSTR,LENGTH,SUBSTR加B时针对字节.
  2)处理数字的函数
  LEAST---返回参数列表中的最小值。返回参数类型以第一参数为准
  格式∶LEAST(value,value,value,value,value,….)value为数字或字符串
  例∶ LEAST(1,2,5,-10,9)= -10
  
  SIGN---返回参数的符号位,负数--- -1,0----0,正数---1
  格式∶SIGN(value)
  
   CELL---返回大于等于特定值的最小整数
   格式∶CELL(value)
   例∶ CELL(-10,9)= -10
  3)处理日期
   SYSDATE---系统时间。精确至秒
  
   ADD_MONTH—加减月份。numvalue为负数时减去相应月份
   格式: ADD_MONTH (data1,numvalue)
  
  MONTHS_BETWEEN---返回两日期之间的月数,当data1
   格式: MONTHS_BETWEEN(data1,data2)
  
   LAST_DAY---返回指定日期的最后一天。
   格式∶LAST_DAY(date)
  
   TRUNC---将日期按照format格式截短,缺省为DD(不是四舍五入)
    格式:TRUNC(date, format)
  例∶
   TRUNC (to_date(‘2002-11-07’,’yyyy-mm-dd’),’MM’)= 2002-11-01
  
  4)分组函数
       返回基于多个行的单一结果.
       常用函数
   AVG---求平均值
   COUNT---返回查询的行数
   MAX---返回查询列的最大值
   MIN---返回查询列的最小值
   SUM---返回查询列的总和
   MAX, MIN常与GROUP BY配套使用
  5)转换函数
   TO_DATE---转换字符串为日期型
  格式∶ TO_DATE(STRING[,’FORMAT’])
  
  TO_CHAR---转换日期型或数值型为字符串。最重要的函数之一.其FORMAT格式多种多样
  格式∶TO_CHAR(DATE [,’FORMAT’])
  FORMAT---具体格式参考ORACLE8i DBA 宝典P835数字格式元素
  P836 日期格式元素
  
   TO_NUMBER---转换字符串为数字
   格式∶TO_NUMBER(string [ , format])
  FORMAT---具体格式参考ORACLE8i DBA 宝典P835数字格式元素
  
  
  6)其他
  DECODE---IF语句的另一形式。将输入数值与参数列表比较,返回对应值。应用于将表的行转换成列以及IF语句无法应用的场合。当与SIGN联合使用时功能扩展,可以判断大于小于的情况.
  格式: DECODE(input_value , value1 , result1 , value2 , result2 , ….defult_result)
  例∶ DECODE(VALUE,1,100,2,300,500)
  当VALUE=1时返回100
  当VALUE=2时返回300
  否则返回500
  
  DECODE(SIGN(VALUES-100), -1,-10,1,10,0)
  当VALUE<100时返回-10
  当VALUE>100时返回10
  当VALUE=100时返回0
  
   SELECT SUM(DECODE(EST_INT_KEY,77771,1,0)) A,
  SUM(DECODE(EST_INT_KEY,77772,1,0)) B,
  SUM(DECODE(EST_INT_KEY,77773,1,0)) C
  FROM PMS_BLK
  
   NVL---空值置换
   格式: NVL(value,替换值)
  例: NVL(value,’nullvalue’)当value为NULL值时返回nullvalue否则返回value的值
  
  VSIZE---以字节为单位返回数据类型尺寸
  格式∶VSIZE(数据类型)
  例∶ VSIZE(SYSDATE)=8
  
  USER---得到当前用户名
  
  ROWNUM--- oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数。不能以任何基表的名称作为前缀。可以用在限制返回记录条数的地方不受ORDER BY的影响.
  例∶ select rownum,month,sell from sale where rownum=1
   或select rownum,month,sell from sale where rownum<2(返回第一条记录)
   返回rownum在4—10之间的记录
  select rownum,month,sell from sale where rownum<10
  minus
  select rownum,month,sell from sale where rownum<5;
  
   以下均错误:
  select rownum,month,sell from sale where rownum=2(1以上)
  select rownum,month,sell from sale where rownum>2
  
  ROWID---数据行在物理磁盘上的物理地址,Oracle通过ROWID来定位数据的具体位置,这是存取表中数据的最快的方法
  
  RETURN---用于函数和过程中.遇见RETURN程序立刻中断,返回,不再执行剩余部分.
  SQLCODE---返回ORACLE错误号。
  SQLERRM---返回ORACLE错误信息。
分享到:
评论

相关推荐

    Oracle PL/SQL实战(待续)

    同时,PL/SQL支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 此外,PL/SQL的包(PACKAGE)概念是将相关的过程和...

    ORACLE PL/SQL从入门到精通

    PL/SQL变量的声明和使用是编程的基础,涉及到变量的声明、初始化、数据类型、%type属性等。变量的赋值和使用也是需要掌握的内容。 此外,书中还涉及到了ORACLE数据库的安装、存储过程的编写、序列操作、数据类型...

    oracle pl/sql从入门到精通 配套源代码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作功能与PL/SQL的程序设计特性,广泛应用于Oracle数据库的开发和管理。这本书"Oracle PL/SQL从入门到精通"的配套源代码,显然是为了...

    Oracle PL/SQL实例精解 数据库建立代码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和PL/SQL的结构化编程特性,使得数据库开发者能够创建复杂的应用程序和数据库逻辑。在"Oracle PL/SQL实例精解 数据库建立代码"中,我们将深入探讨...

    Oracle PL/SQL程序设计(第5版)(上下册)

    - **新特性概述**:介绍Oracle 11g中引入的与PL/SQL相关的新增功能,例如新的数据类型、函数、性能优化技术等。 - **性能提升技术**:提供了一些具体的例子和最佳实践,展示了如何利用Oracle 11g的新特性来进一步...

    Oracle资料学习PL/SQL必备

    2. **数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合数据类型(如记录和数组)。 3. **变量声明和赋值**...

    oracle pl/sql实例精讲student数据库模式数据和表脚本

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和Procedural Language的编程结构,用于在Oracle数据库环境中创建复杂的应用程序。在"Oracle PL/SQL实例精讲student数据库模式"中,我们将深入探讨...

    oracle10g_pl/sql

    - **变量和常量**:PL/SQL支持各种数据类型,如NUMBER、VARCHAR2、DATE等,以及声明变量和常量的方式。 - **流程控制**:包括IF...ELSIF...ELSE、CASE、FOR循环、WHILE循环等结构。 2. **PL/SQL程序单元** - **...

    Oracle PL/SQL学习官方教材

    1. **基础概念**:首先,教材会介绍PL/SQL的基本概念,包括块(Block)、变量(Variable)、常量(Constant)、数据类型(Data Types)和声明(Declaration)。例如,PL/SQL中的块由BEGIN、END语句界定,变量和常量...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    2. **复合数据类型**:介绍PL/TABLE、记录类型(%ROWTYPE)以及集合类型(VARRAY和NESTED TABLE),这些都是处理大量数据或构建复杂数据结构的关键工具。 3. **游标**:讲解如何使用显式和隐式游标进行查询和遍历...

    Oracle PL/SQL programming(5th Edition)

    - **数据类型**:介绍了PL/SQL支持的各种数据类型,包括基本数据类型和复合数据类型等。 - **控制结构**:如循环、条件语句等。 - **异常处理**:如何处理程序运行时可能出现的各种异常情况。 2. **高级编程技术*...

    Oracle PL/SQL编程及最佳实践

    Oracle PL/SQL 是一种高级编程语言,用于开发 Oracle 数据库中的存储过程、函数和触发器。PL/SQL language 提供了强大的编程能力,可以实现复杂的业务逻辑,并且与 Oracle 数据库紧密集成。 一、Oracle 简介 ...

    Oracle PL/SQL语言初级教程

    总之,Oracle PL/SQL语言初级教程将引导初学者逐步掌握PL/SQL的基础知识,包括语法、数据类型、函数、表和视图的管理、完整性约束、过程和函数、操作控制以及异常处理。通过学习,开发者可以编写出高效、稳定的...

    Oracle PL/SQL by Example(4th Edition)

    6. **复合数据类型**:理解数组、对象和嵌套表等复合数据类型,这些在处理大量相关数据时非常有用。 7. **包**:了解包的概念,它是将相关的过程、函数和变量组合在一起的机制,有助于提高代码的组织性和可维护性。...

    Oracle PL/SQL best practice

    Oracle PL/SQL是一种强大的编程语言,用于在Oracle数据库环境中构建复杂的业务逻辑和数据处理任务。Steven Feuerstein,被誉为Oracle PL/SQL语言的大师,分享了他在这一领域的关键最佳实践和重要特性。这篇PPT旨在...

    《精通Oracle PL/SQL》源码

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和PL(过程化语言)的程序设计特性,是Oracle数据库系统中的核心组件之一。《精通Oracle PL/SQL》这本书深入探讨了这个语言的...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、PLS_INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合数据类型如记录和数组。 3. **控制...

    oracle_oracle_oraclepl/sql_

    2. **变量和数据类型**:PL/SQL支持多种数据类型,包括数值型(如NUMBER)、字符型(VARCHAR2和CHAR)、日期型(DATE)、布尔型(BOOLEAN)以及复合和对象类型。 3. **流程控制**:PL/SQL提供了IF-THEN-ELSIF-ELSE...

Global site tag (gtag.js) - Google Analytics