欢迎 longtian001 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2009年01月08日 星期四  您现在位于: 首页 → 技术文章 → Oracle PL/SQL...
   Oracle PL/SQL的数据类型和常用函数
作者:hmf.cublog.cn  出处:hmf.cublog.cn  更新时间: 2007年05月20日 

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错误信息。
 (本文已被浏览 13723 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:调整事务级别,精确计算某时间点的统计数据
下篇文章:Windows下常见Oracle服务介绍
 相关文章:
Oracle数据库PL/SQL编码规则总结 Oracle的SQL*PLUS命令
查找Oracle版本信息的简便方法 Oracle数据直接导出到文本文件的方法
Oracle中PL/SQL编程对系统性能的影响 Oracle PL/SQL语言基础
Oracle PL/SQL入门教程 Oralce PL/SQL入门例子
Oracle PL/SQL游标的学习 Oracle PL/SQL语言入门
Oracle和SQL Server浅析 Oracle PL/SQL游标的学习

相关搜索
查看百度中关于Oracle PL/SQL的数据类型和常用函数的更多内容
查看google中关于Oracle PL/SQL的数据类型和常用函数的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.