语法: LOG(x)
功能: 计算以x为底的y的对数.底必须大于0而且不等于1, y为任意正数. 使用位置: 过程性语言和SQL语句。 ?
MOD 语法: MOD(x,y)
功能: 返回x除以y的余数.如果y是0,则返回x 使用位置: 过程性语言和SQL语句。
? POWER
语法: POWER(x,y)
功能: 计算x的y次幂.
使用位置: 过程性语言和SQL语句。 ?
ROUND
语法: ROUND(x[,y])
功能: 计算保留到小数点右边y位的x值. y缺省设置为0,这会将x保留为最接近的整数.
如果y小于0,保留到小数点左边相应的位. Y必须是整数. 使用位置: 过程性语言和SQL语句。
? SIGN
语法: SIGN(x)
功能: 获得x的符号位标志.如果x<0返回-1.如果x=0返回0.如果x>0返回1. 使用位置: 过程性语言和SQL语句。
? SIN 语法:SIN(x)
功能:计算x的正弦值. X是一个以弧度表示的角度. 使用位置: 过程性语言和SQL语句。
? SINH 语法:SINH(x)
功能:返回x的双曲正弦值.
使用位置: 过程性语言和SQL语句。 ?
SQRT
语法: SQRT(x)
功能: 返回x的平方根. x必须是正数. 使用位置: 过程性语言和SQL语句。
? TAN
语法: TAN(x)
功能: 计算x的正切值, x是一个以弧度位单位的角度.
使用位置: 过程性语言和SQL语句。
TANH
语法: TANH(x)
功能: 计算x的双曲正切值. 使用位置: 过程性语言和SQL语句。
? TRUNC
语法: TRUNC(x[,y])
功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那
么就截尾到小数点左边对应的位上. 使用位置: 过程性语言和SQL语句。
F.4 日期函数
日期函数接受DATE类型的参数.除了MONTHS_BETWEEN函数返回的是NUMBER类型的结果,所有其他的日期函数返回的都是DATE类型的数值. ? ADD_MONTHS
语法: ADD_MONTHS(d,x)
功能: 返回日期d加上x个月后的月份。x可以是任意整数。如果结果日期中的月份所包
含的天数比d日期中的“日”分量要少。(即相加后的结果日期中的日分量信息已
经超过该月的最后一天,例如,8月31日加上一个月之后得到9月31日,而9月只能有30天)返回结果月份的最后一天。
使用位置: 过程性语言和SQL语句。
? LAST_DAY 语法:LAST_DAY(d)
功能:计算包含日期的d的月份最后一天的日期.这个函数可以用来计算当月中剩余天数. 使用位置: 过程性语言和SQL语句。
? MONTHS_BETWEEN
语法: MONTHS_BETWEEN(date 1,date2)
功能: 计算date 1和date2之间月数.如果date 1,date2这两个日期中日分量信息是相同的,
或者这两个日期都分别是所在月的最后一天,那么返回的结果是一个整数,否则包括一
个小数,小数为富余天数除以31.
使用位置: 过程性语言和SQL语句。
? NEW_TIME
语法: NEW_TIME(d,zone1,zone2)
功能: 计算当时区zone1中的日期和时间是s时候,返回时区zone2中的日期和时间. zone1和
zone2是字符串. 使用位置: 过程性语言和SQL语句。
? NEXT_DAY
语法: NEXT_DAY(d,string)
功能: 计算在日期d后满足由string给出的条件的第一天. String使用位置;当前会话的语言
指定了一周中的某一天.返回值的时间分量与d的时间分量是相同的. String的内容可以忽略大小写. 使用位置: 过程性语言和SQL语句。
? ROUND
语法: ROUND(d[,format])
功能: 将日期d按照由format指定的格式进行处理.如果没有给format则使用缺省设置`DD`. 使用位置: 过程性语言和SQL语句。 ?
SYSDATE
语法: SYSDATE
功能: 取得当前的日期和时间,类型是DATE.它没有参数.但在分布式SQL语句中使用
时,SYSDATE返回本地数据库的日期和时间. 使用位置: 过程性语言和SQL语句。
? TRUNC
语法: TRUNC(d,format)
功能: 计算截尾到由format指定单位的日期d.可以使用位置:格式和效果.缺省参数同
ROUNG.
使用位置: 过程性语言和SQL语句。
F.5 转 换 函 数
转换函数用于在PL/SQL数据类型之间进行转换.PL/SQL尽可能地自动进行转换,也就是采用隐含方式转换.隐含转换无法转换格式信息,并且有些类型的数据之间不支持隐含转换,所以对这些可以采用显示转换.使用显示转换也是一种好的编程习惯
.
? CHARTOROWID
语法: CHARTOROWID(string)
功能: 把包含外部格式的ROWID的CHAR或VARCHAR2数值转换为内部的二进制格式.
参数string必须是包含外部格式的ROWID的18字符的字符串.oracle7和 oracle8中
的外部格式是不同的.CHARTOROWID是ROWIDTOCHAR的反函数.
使用位置: 过程性语言和SQL语句。 ?
CONVERT
语法: CONVERT(string,dest_set[,source_set])
功能: 将字符串string从source_set所表示的字符集转换为由dest_set所表示的字符集.如果
source_set没有被指定,它缺省的被设置为数据库的字符集. 使用位置: 过程性语言和SQL语句。
? HEXTORAW
语法: HEXTORAW(string)
功能: 将由string表示的二进制数值转换为一个RAW数值. String应该包含一个十六进制的
数值. String中的每两个字符表示了结果RAW中的一个字节..HEXTORAW和
RAWTOHEX为相反的两个函数.
使用位置: 过程性语言和SQL语句。 ?
RAWTOHEX
语法: RAWTOHEX(rawvalue)
功能: 将RAW类数值rawvalue转换为一个相应的十六进制表示的字符串. rawvalue中的每
个字节都被转换为一个双字节的字符串. RAWTOHEX和HEXTORAW是两个相反的函数.
使用位置: 过程性语言和SQL语句。 ?
ROWIDTOCHAR
语法: ROWIDTOCHAR(rowid)
功能: 将ROWID类型的数值rowid转换为其外部的18字符的字符串表示,在oracle7和
oracle8之间有些不一样的地方. ROWIDTOCHAR和CHARTOROWID是两个相反的
函数.
使用位置: 过程性语言和SQL语句。
? TO_CHAR(dates)
语法: TO_CHAR(d [,format[,nlsparams]])
功能: 将日期d转换为一个VARCHAR2类型的字符串.如果指定了format,那么就使用位置:
它控制结果的方式.格式字符串是由格式元素构成的.第一个元素返回日期数值一个部份,例如日子.如果没有给定format,使用的就是该会话的缺省日期格式.如果指定了
nlsparams,它就控制着返回字符串的月份和日分量信息所使用的语言. nlsparams的格式是:
“NLS_DATE_LANGUAGE”
使用位置: 过程性语言和SQL语句。
? TO_CHAR(labels)
语法: TO_CHAR(labels[,format])
功能: 将MISLABEL的LABEL转换为一个VARCHAR2类型的变量. 使用位置: 在trusted数据库的过程性语句和SQL语句。
? TO_CHAR(numbers)
语法: TO_CHAR(num[,format[,nlsparams]])
功能: 将NUMBER类型的参数num转换为一个VARCHAR2类型的变量.如果指定了
format,那么它会控制这个转换处理.表5-5列除了可以使用的数字格式.如果没有指定
format,它会控制这个转换过程.下面列出了可以使用的数字格式.如果没有指定format,那么结果字符串将包含和num中有效位的个数相同的字符. nlsparams用来指定小数点和千分位分隔符和货币符号.可以使用的格式:
`NLS_NUMERIC_CHARS=”dg”NLS_CURRENCY=”string”
d和g分别表示列小数点和千分位分隔符. String表示了货币的符号.例如,在美国小数点分隔符通常是一个句点(.),分组分隔符通常是一个逗号(,),而千分位符号通常是一个
$.
使用位置: 过程性语言和SQL语句。 ?
TO_DATE
语法: TO_DATE(String[,format[,nlsparams]])
功能: 把CHAR或者VARCHAR2类型的String转换为一个DATE类型的变量. format是一
个日期格式字符串.当不指定format的时候,使用该会话的缺省日期格式. 使用位置: 过程性语言和SQL语句。
? TO_LABEL
语法: TO_LABEL(String[,format])
功能: 将String转换为一个MLSLABEL类型的变量. String可以是VARCHAR2或者CHAR
类型的参数.如果指定了format,那么它就会被用在转换中.如果没有指定format,那么
使用缺省的转换格式.
使用位置: 过程性语言和SQL语句。 ?
TO_MULTI_BYTE
语法: TO_MULTI_BYTE(String)
功能: 计算所有单字节字符都替位换位等价的多字节字符的String.该函数只有当数据库字
符集同时包含多字节和单字节的字符的时候有效.否则, String不会进行任何处理. TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的两个函数. 使用位置: 过程性语言和SQL语句。 ?
TO_NUMBER
语法: TO_NUMBER(String[,format[,nlsparams]])
功能: 将CHAR或者VARCHAR2类型的String转换为一个NUMBER类型的数值.如果指定
了format,那么String应该遵循相应的数字格式. Nlsparams的行为方式和TO_CHAR
中的完全相同.TO_NUMBER和TO_CHAR是两个相反的函数.
使用位置: 过程性语言和SQL语句。 ?
TO_SINGLE_BYTE
语法: TO_SINGLE_BYTE(String )
功能: 计算String中所有多字节字符都替换为等价的单字节字符.该函数只有当数据库字符
集同时包含多字节和单字节的字符的时候有效.否则, String不会进行任何处理. TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的两个函数.
使用位置: 过程性语言和SQL语句。