<ul><li>SQL 内置函数说明 </li></ul>Oracle 8i 数据库管理 WinnerSoft
数字格式元素 Oracle 8i 数据库管理 WinnerSoft 格式化一个有尾随符号的负数及尾随一空格的正数 999,999MI MI 格式化一个没有前置空格和尾随空格的数据 Fm9.99 FM 得到一个由说明符定义的格式数据 999.9E...
数字格式元素 Oracle 8i 数据库管理 WinnerSoft 乘以 10 的 x 次方,其中, x 是字符 v 后面字符 9 的个数 999v999 V 返回 16 进制数。该 16 进制数字符( A-F )符合格式说明串的要求。使用 X...
日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回月份值 dd-Mon-yyyy DD 返回缩写的星期名 X Dy dd-Mon-yyyy DY 返回 9 个字符宽度的星期全名 X Day dd-Mon-yyyy DAY ...
日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回一罗马数字月份 X RM RM 返回相应的季节号(数字),例如: 1-3 月返回 1 , 4-6 月返回 2 ,如此等等 Q Q 返回有 9 个字符宽度的月份全名 X Mo...
日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回年份数字,从 1 位到此 4 位。使用 YYYY 将得到全部 4 位年份数字,而使用 YY 仅仅得到最后的两位,如此等等。负号 ( - )被加到 S 前表示公元前的年份 X...
日期格式元素 <ul><li>一般地,日期格式说明符是不太敏感的。然而,当为了显示而说明日期格式、对于文本数据中的说明符等情况下,它就变得比较务实、具体了。以月份的名字为例,通过下面引用的结果解释一下该情况的效果: </li></ul><ul>...
SQL 内置函数 <ul><li>ABS </li></ul><ul><li>ABS 函数返回一数值的绝对值。负数将舍去其负号。下面是它的语法格式: </li></ul><ul><li>ABS(number) </li></ul><ul><li...
SQL 内置函数 <ul><li>ACOS </li></ul><ul><li>ACOS 函数返回一数值的反余弦值。结果以弧度表示,且在 0 到 PI 之间。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><...
SQL 内置函数 <ul><li>ADD_MONTHS </li></ul><ul><li>ADD_MONTHS 函数将一个日期上加上一指定的月份数,所以,日期中的日将是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍...
SQL 内置函数 <ul><li>ASCII </li></ul><ul><li>ASCII 函数返回你指向的字符串首字母的十进制表示代表码值。该返回值或许是 ASCII 码值,也或许不是。如果用户的数据库字符集是 7 位的 ASCII 值,那...
SQL 内置函数 <ul><li>ASIN </li></ul><ul><li>ASIN 函数返回一数值的反正弦值。结果以弧度表示,且在 -PI/2 到 PI/2 之间。 </li></ul><ul><li>其语法格式如下: </li></ul...
SQL 内置函数 <ul><li>ATAN </li></ul><ul><li>ATAN 函数返回一数值的反正切值。结果以弧度表示,且在 -PI/2 到 PI/2 之间。 </li></ul><ul><li>其语法格式如下: </li></ul...
SQL 内置函数 <ul><li>ATAN2 </li></ul><ul><li>ATAN2 函数返回两个数值的反正切值。结果以弧度表示。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>ATAN2 (...
SQL 内置函数 <ul><li>BFILENAME </li></ul><ul><li>BFILENAME 函数返回一指向磁盘的物理文件的 BFILE 地址。 </li></ul><ul><li>其语法格式如下: </li></ul><ul>...
SQL 内置函数 <ul><li>CEIL </li></ul><ul><li>CEIL 函数根据输入值返回一个数值。输入参数可以是非整数值,但返回结果则是大于等于输入参数的最小整数。 </li></ul><ul><li>其语法格式如下: </...
SQL 内置函数 <ul><li>CHARTOROWID </li></ul><ul><li>CHARTOROWID 函数将一个字符串转换成 rowid 类型。 </li></ul><ul><li>其语法格式如下: </li></ul><ul>...
SQL 内置函数 <ul><li>CHR </li></ul><ul><li>CHR 函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个 ASCII 值,使用 CHR 函数返回该数值表示的字符。 </li></ul><ul><...
SQL 内置函数 <ul><li>CONCAT </li></ul><ul><li>CONCAT 函数将两个输入字符串,组合成一个,并返回结果。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CONC...
SQL 内置函数 <ul><li>CONVERT </li></ul><ul><li>CONVERT 函数把一字符串从一个字符集转换到另一字符集。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CON...
SQL 内置函数 <ul><li>COS </li></ul><ul><li>COS 函数返回一角度的余弦值。结果为弧度值。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>COS(angle) </l...
SQL 内置函数 <ul><li>COSH </li></ul><ul><li>COSH 函数返回一角度的双曲余弦值。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>COSH(angle) </li>...
SQL 内置函数 <ul><li>DECODE( 一 ) </li></ul><ul><li>DECODE 函数相当于一条件语句 (IF). 它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果...
SQL 内置函数 <ul><li>DECODE( 二 ) </li></ul><ul><li>这个 SQL 语句展示了 DECODE 函数的左右基础功能特征。函数的输入值时 BLOOD_TEST_FLAG 列的数据,如果该列的值是‘ Y’, 那...
SQL 内置函数 <ul><li>该例告诉我们, 1995 、 1996 和 1997 年各出生了多少动物。每一行显示不同的年。一旦希望将这些数值显示成 3 列,该如何处理?可以通过如表 B-1 所示的方法处理之。 </li></ul>Orac...
SQL 内置函数 <ul><li>EMPTY_BLOB </li></ul><ul><li>EMPTY_BLOB 函数返回一空的 BLOB 指针,该指针可以用在 INSERT 或 UPDATE 命令中,以初始化 BLOB 列项。 </li></...
SQL 内置函数 <ul><li>EMPTY_CLOB </li></ul><ul><li>EMPTY_CLOB 函数与 EMPTY_BLOB 函数的功能类似,只不过对应 CLOB 而已。它返回一空的 CLOB 指针,该指针可以用在 INSER...
SQL 内置函数 <ul><li>EXP </li></ul><ul><li>EXP 函数返回 e 的一个幂。在数学上 e 经常被用来表示一指定的特殊数值(一个十进制的无限数) 2.178… ,它是数学的基础。其具体的语法格式如下: </li>...
SQL 内置函数 <ul><li>FLOOR </li></ul><ul><li>FLOOR 函数返回一个小于或等于给定十进制数的最大整数。该函数的工作机制与函数 CEIL 的情况极为相似,但却正好相反。 </li></ul><ul><li>其...
SQL 内置函数 <ul><li>GREATEST </li></ul><ul><li>GREATEST 函数返回一数值列表中的最高数值。可使用 GREATEST 函数处理数字数据和字符数据。 </li></ul><ul><li>其具体的语法格...
SQL 内置函数 <ul><li>HEXTORAW </li></ul><ul><li>函数 HEXTORAW 将一个由十六进制字符组成的字符串转换成一个 raw 数值。 </li></ul><ul><li>其具体的语法格式如下: </li><...
SQL 内置函数 <ul><li>INITCAP </li></ul><ul><li>INITCAP 函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。 </li></ul><ul><li>其的语法格式如下: </li>...
SQL 内置函数 <ul><li>INSTR </li></ul><ul><li>函数 INSTR 会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。 </li></ul><ul><li>其具体的语法格式如下: </li>...
SQL 内置函数 <ul><li>INSTRB </li></ul><ul><li>该函数与 INSTR 的功能极为类似,也将反馈其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。只是该函数返回的是一字节索引位置,而不是一字符索引位置...
SQL 内置函数 <ul><li>LAST_DAY </li></ul><ul><li>函数 LAST_DAY 返回实参数指定日期对应月份的最后一天。其具体的语法格式如下: </li></ul><ul><li>LAST_DAY ( date )...
SQL 内置函数 <ul><li>LEAST </li></ul><ul><li>LEAST 函数返回参数给定的数值列表中的最小值。对数值数据或字符串数据均有效。 </li></ul><ul><li>其具体的语法格式如下: </li></ul>...
SQL 内置函数 <ul><li>LENGTH  </li></ul><ul><li>LENGTH 函数返回字符串的长度。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LENGTH(strin...
SQL 内置函数 <ul><li>LENGTHB  </li></ul><ul><li>LENGTHB 函数返回字符串的长度。但在多字符集同时使用时会有所区别。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><...
SQL 内置函数 <ul><li>LN </li></ul><ul><li>函数 LN 返回一数值的自然对数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LN ( number ) </li...
SQL 内置函数 <ul><li>LOG </li></ul><ul><li>LOG 函数返回数值的非自然对数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LOG ( logbase,num...
SQL 内置函数 <ul><li>LOWER </li></ul><ul><li>函数 LOWER 返回参数指定字符串的小写形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LOWER ( ...
SQL 内置函数 <ul><li>LPAD </li></ul><ul><li>LPAD 函数从左面填充指定的字符串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LPAD ( string,...
SQL 内置函数 <ul><li>LTRIM </li></ul><ul><li>LTRIM 函数删除字符串左边的前缀字符。一般前缀字符总是空格。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>...
SQL 内置函数 <ul><li>MOD </li></ul><ul><li>MOD 函数返回一个数除以另一数的余数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>MOD ( number,d...
SQL 内置函数 <ul><li>MONTHS_BETWEEN </li></ul><ul><li>MONTHS_BETWEEN 函数返回两个日期之间的月份数 </li></ul><ul><li>其具体的语法格式如下: </li></ul><u...
SQL 内置函数 <ul><li>NEW_TIME </li></ul><ul><li>NEW_TIME 函数将在时区间转换日期 / 时间数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>N...
SQL 内置函数 <ul><li>NEXT_DAY </li></ul><ul><li>NEXT_DAY 函数返回从实参日期开始,紧随其后的指定星期对应的日期。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><...
SQL 内置函数 <ul><li>NVL </li></ul><ul><li>NVL 函数需要两个参数。如果第一个参数为空,则返回第二个参数。第二个参数表示是第一个参数的替换对象。 </li></ul><ul><li>其具体的语法格式如下: <...
SQL 内置函数 <ul><li>POWER </li></ul><ul><li>函数 POWER 返回一个数值的指定次幂。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>POWER(numbe...
SQL 内置函数 <ul><li>RAWTOHEX </li></ul><ul><li>RAWTOHEX 函数将一 raw 转换成十六进制字符表示的串值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul>...
SQL 内置函数 <ul><li>REPLACE </li></ul><ul><li>REPLACE 函数在一字符串中搜索一指定的子串,并将其替换成另外一指定串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul>...
SQL 内置函数 <ul><li>ROUND(for dates) </li></ul><ul><li>ROUND 函数将一日期处理(舍入)成第二个参数指定的形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul...
SQL 内置函数 <ul><li>ROUND(for number) </li></ul><ul><li>ROUND 函数将一数值处理(舍入)成第二个参数指定的形式的十进制数。 </li></ul><ul><li>其具体的语法格式如下: </l...
SQL 内置函数 <ul><li>ROWIDTOCHAR </li></ul><ul><li>ROWIDTOCHAR 函数将一行标志码( ROWID )转换成一字符串。 </li></ul><ul><li>其具体的语法格式如下: </li></...
SQL 内置函数 <ul><li>RPAD </li></ul><ul><li>RPAD 函数在字符串的后面追加若干字符。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>RPAD ( strin...
SQL 内置函数 <ul><li>RTRIM </li></ul><ul><li>RTRIM 函数压缩掉串右面的尾随字符,常常是从指定字符串(第一参数)中压缩空格。 </li></ul><ul><li>其具体的语法格式如下: </li></ul...
SQL 内置函数 <ul><li>SIGN </li></ul><ul><li>SIGN 函数返回实参的符号。对于负数返回 -1 , 0 返回 0 ,正数返回 +1 。 </li></ul><ul><li>其具体的语法格式如下: </li></...
SQL 内置函数 <ul><li>SIN </li></ul><ul><li>SIN 函数返回一个角度的正弦值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SIN ( angle ) </l...
SQL 内置函数 <ul><li>SOUNDEX </li></ul><ul><li>SOUNDEX 函数根据以下规则返回一个字符串的发音描述。 </li></ul><ul><li>1 、保留字符串的首字母 </li></ul><ul><li>...
SQL 内置函数 <ul><li>SORT </li></ul><ul><li>SORT 函数返回一数字的算术平方根。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SORT ( number ...
SQL 内置函数 <ul><li>SUBSTR </li></ul><ul><li>SUBSTR 返回一字符串得指定字串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SUBSTR ( str...
SQL 内置函数 <ul><li>SUBSTRB </li></ul><ul><li>SUBSTRB 返回一字符串的指定部分。该函数与 SUBSTR 极为类似,只是该函数的 start 和 length 两参数均以字节为单位,而不是根据字符。这...
SQL 内置函数 <ul><li>SYSDATE </li></ul><ul><li>SYSDATE 函数返回当前日期时间,一直到秒。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SYSDAT...
SQL 内置函数 <ul><li>TAN </li></ul><ul><li>TAN 函数返回一个角度的正切值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TAN ( angle ) </l...
SQL 内置函数 <ul><li>TANH </li></ul><ul><li>TANH 函数返回一个角度的十六进制正切值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TANH ( angl...
SQL 内置函数 <ul><li>TO_CHAR(for dates) </li></ul><ul><li>TO_CHAR 函数将一个日期型数据转换成一个字符型数据。 </li></ul><ul><li>其具体的语法格式如下: </li></u...
SQL 内置函数 <ul><li>TO_CHAR(for numbers) </li></ul><ul><li>TO_CHAR 函数将一个数值型数据转换成一个字符型数据。 </li></ul><ul><li>其具体的语法格式如下: </li><...
SQL 内置函数 <ul><li>TO_DATE </li></ul><ul><li>TO_DATE 函数将一个字符型数据转换成一个日期型数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>T...
SQL 内置函数 <ul><li>TO_LOB </li></ul><ul><li>TO_LOB 函数将一个 LONG 或 LONG RAW 型数据转换成下列类型: CLOB 、 BLOB 或 NCLOB 。当仅仅需要在 INSERT 语句中用...
SQL 内置函数 <ul><li>TO_NUMBER </li></ul><ul><li>TO_NUMBER 函数将一字符串转换成一数字。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_N...
SQL 内置函数 <ul><li>TRIM </li></ul><ul><li>TRIM 函数将字符串的前缀(或尾随)字符删除。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TRIM ( [L...
SQL 内置函数 <ul><li>TRUNC(for dates) </li></ul><ul><li>TRUNC 函数为指定元素而截去的日期值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>...
SQL 内置函数 <ul><li>TRUNC(for number) </li></ul><ul><li>TRUNC 函数返回处理后的数值,其工作机制与 ROUND 函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去...
SQL 内置函数 <ul><li>UID </li></ul><ul><li>UID 函数返回一个整数值。对于当前数据库用户来它是唯一的。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>UID ...
SQL 内置函数 <ul><li>UPPER </li></ul><ul><li>UPPER 函数间返回字符串的大写形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>UPPER ( stri...
SQL 内置函数 <ul><li>USER </li></ul><ul><li>USER 返回当前用户名,没有参数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>USER </li></ul>...
Upcoming SlideShare
Loading in...5
×

Oracle经典教程

716

Published on

1 Comment
0 Likes
Statistics
Notes



  • <b>[Comment posted from</b> http://www.uniquesoft.cn/cms/onlineview/?bookid=54&docid=oracle-100101204546-phpapp02&bookname=Oracle%E7%BB%8F%E5%85%B8%E6%95%99%E7%A8%8B.ppt]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
716
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Oracle经典教程

  1. 1. <ul><li>SQL 内置函数说明 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  2. 2. 数字格式元素 Oracle 8i 数据库管理 WinnerSoft 格式化一个有尾随符号的负数及尾随一空格的正数 999,999MI MI 格式化一个没有前置空格和尾随空格的数据 Fm9.99 FM 得到一个由说明符定义的格式数据 999.9EEEE EEEE 标定数字的位置。如果在数字格式中没有符号说明,正数的前面将用一个空格代替对应负数的负号 9.99 9 标定格式化数字中试图显示前置零的位置 0999 0 标定由参数 NLS_UNION_CURRENCY 说明的联合体当前的字符的位置 U999,999.99 U 标定由参数 NLS_CURRENCY 说明的当前字符的位置 L999,999.99 L 标定当前字符(由参数 NLS_ISO_CURRENCY 说明 ) 的位置,这是个对语言编程有限定作用的数值 C999,999.99 C 标定格式化数字前面美元符号的位置 $999 999.99 $ 标定小数点(由参数 NLS_NUMERIC_CHARACTER 说明)的位置,这是对语言编程有限定作用的数值 9D99 D 标定格式化数字中的小数点位置 9.99 . 返回一组通过参数 NLS_NUMERIC_CHARACTER 设定的分隔符,这是个对语言编程有限定作用的数值 999G999 G 标定格式化数字中的位置 999 , 999 , 说明 示例 元素
  3. 3. 数字格式元素 Oracle 8i 数据库管理 WinnerSoft 乘以 10 的 x 次方,其中, x 是字符 v 后面字符 9 的个数 999v999 V 返回 16 进制数。该 16 进制数字符( A-F )符合格式说明串的要求。使用 X 返回大写的 16 进制数字( A-F ),使用 x 返回小写的 16 进制数值( a-f) XXXX Xxxx X 以最少的字符数为数值格式。其中, TM9 时固定的注记方式,但 TME 则需使用具体的说明。如果,在一超过 64 个字符的字符串中使用了 TM9 ,那么,说明的形式可以是任意的 TM9 TME TM 将数据格式定义成:负数前面负号( - ),正数前面置正号( + )将符号置于数值后面,符号变成尾随符号 S999,999 999,999s S 将数据的格式定义为小写罗马数字 m M 将数据的格式定义为大写罗马数字 RN RN 格式化 < > 中的负数 999pr PR 说明 示例 元素
  4. 4. 日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回月份值 dd-Mon-yyyy DD 返回缩写的星期名 X Dy dd-Mon-yyyy DY 返回 9 个字符宽度的星期全名 X Day dd-Mon-yyyy DAY 返回一星期序号 1-7 ,星期日为 1 X D D 返回世纪数值。使用 S 可以在 BC 前面加一负号。 2000 年对应 20th 世纪, 20001 年对应 21th 世纪 CC SCC CC SCC 标示 AM/PM 的位置。该说明符与 AM 和 A.M. 的使用相同,但不能用在函数 TO_CHAR 中 hh:mi pm hh:mi P.M. PM P.M. 标示上下午标志 AM/PM 的位置。在某时间区间是否加设该标志,应该与所使用的格式说明符相一致 X hh:mi am hh:mi a.m. hh:mi AM AM A.M. PM P.M. 标示公元标志 AD/BC 的位置。在某时间内是否加设该标志,应该与所使用的格式说明符相一致 X YYYY AD yyyy bc YYYY B.C. AD A.D. in BC B.C. 在一日期当中设置一分隔标点。其实,在说明一日期格式时,可以使用任意字符作为分隔标点 X mm/dd/yy _/,.;: 说明 TO_DATE? 示例 元素
  5. 5. 日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回一罗马数字月份 X RM RM 返回相应的季节号(数字),例如: 1-3 月返回 1 , 4-6 月返回 2 ,如此等等 Q Q 返回有 9 个字符宽度的月份全名 X Monrh dd,yyyy MONTH 返回月份缩写 X dd=Mon-yyyy MON 返回一个月份数字 X mm/dd/yy MM 返回一个分钟数值 X hh:mi:ss MI 返回一数字,该数字为从 1-Jan-4712 BC 到当天的天数 X J J 返回 ISO 年份数字, IYYY 返回 4 位数年份值, IY 返回最后 2 位年份值 dd-Mon-IY dd-Mon-IYYY IYYY IYY IY I 返回一年中由 ISO 标准定义的星期数值 IW IW 返回小时数值( 0-23 ) X HH24:MI HH24 返回小时数值( 1-12 ) hh12:mi:ss HH12 返回小时数值( 1-12 ) X HH:MI HH 返回一时代的全名 EE EE 返回一时代的缩写名称。该说明符仅用于有历法支持的时代,例如,日本的天皇历法等 E E 返回年值 ddd yyy DDD 说明 TO_DATE? 示例 元素
  6. 6. 日期格式元素 Oracle 8i 数据库管理 WinnerSoft 返回年份数字,从 1 位到此 4 位。使用 YYYY 将得到全部 4 位年份数字,而使用 YY 仅仅得到最后的两位,如此等等。负号 ( - )被加到 S 前表示公元前的年份 X Mon dd,YYYY YYYY SYYY YYY YY Y 返回一个逐字拼写的年份数值。加 S 对于公元前的年份前缀一个负号( - ) Mon dd,YEAY YEAR SYEAR 返回一带有逗号的年份数字,逗号后面是一千位数 X Mon dd,Y,YYY Y,YYY 返回相对一个月中的星期数字 W W 返回相对一年中的星期数字 WW WW 返回超过午夜的秒数 X sssss SSSSS 返回秒值 X hh:mi:ss SS 与 RR 相似,但也允许以 4 位数字输入年份。如果使用 4 位数表示年份,则不允许修改。如果使用 2 位数字,则规则与 RR 相同 X dd-Mon-rrrr RRRR 通过一个窗口(其位置可变)解释一个两位数字的年份。如果,这个两位的数字年份小于 50 ,那么,该年份将被解释为下一世纪的年份数值。例如,假设当前年份是 1999 年,那么日期 1-Jan-2030 X dd-Mon-rr RR 说明 TO_DATE? 示例 元素
  7. 7. 日期格式元素 <ul><li>一般地,日期格式说明符是不太敏感的。然而,当为了显示而说明日期格式、对于文本数据中的说明符等情况下,它就变得比较务实、具体了。以月份的名字为例,通过下面引用的结果解释一下该情况的效果: </li></ul><ul><li>TO_CHAR(SYSDATE,’MONTH’)=NOVEMBER </li></ul><ul><li>TO_CHAR(SYSDATE,’Month’)=November </li></ul><ul><li>TO_CHAR(SYSDATE,’month’)=november </li></ul><ul><li>当你键入的单词 MONTH (月份)是大写字母时,月份名字的结果就全部说明为大写。否则,如果串说明时的首字母是大写,则返回的月份名首字母也是大写字母。同样的规则也适用于下面的格式说明符: AD 、 AM 、 PM 、 BC 、 DAY 、 DY 、 MON 、 RM 和 YEAR </li></ul>Oracle 8i 数据库管理 WinnerSoft
  8. 8. SQL 内置函数 <ul><li>ABS </li></ul><ul><li>ABS 函数返回一数值的绝对值。负数将舍去其负号。下面是它的语法格式: </li></ul><ul><li>ABS(number) </li></ul><ul><li>其中, number 是希望得到其绝对值的数值 </li></ul><ul><li>ABS 函数截去数值的符号。如下例所示: </li></ul><ul><li>ABS(5)=5 </li></ul><ul><li>ABS(5)=5 </li></ul><ul><li>不管是 5 还是 -5 ,其绝对值均为 5 。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  9. 9. SQL 内置函数 <ul><li>ACOS </li></ul><ul><li>ACOS 函数返回一数值的反余弦值。结果以弧度表示,且在 0 到 PI 之间。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>ACOS(number) </li></ul><ul><li>其中, number 必须是 -1 与 1 之间的值 </li></ul><ul><li>下面的例子显示了 1 和 -1 的反余弦值: </li></ul><ul><li>ACOS(1)=0 </li></ul><ul><li>ACOS(-1)=3.1415927(PI) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  10. 10. SQL 内置函数 <ul><li>ADD_MONTHS </li></ul><ul><li>ADD_MONTHS 函数将一个日期上加上一指定的月份数,所以,日期中的日将是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍对应新的一月的最后一天。如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。其语法格式如下: </li></ul><ul><li>ADD_MONTHS(date,months) </li></ul><ul><li>其中: </li></ul><ul><li>date 一个日期数值 </li></ul><ul><li>months 要加上的月份数。要减去的月份数用负数 </li></ul><ul><li>下面的例子解释了该函数的使用: </li></ul><ul><li>ADD_MONTHS(TO_DATE(’15-Nov-1961’,’d-mon-yyyy’),1) =’15-Dec-1961 </li></ul><ul><li>ADD_MONTHS(TO_DATE(’30-Nov-1961’,’d-mon-yyyy’),1) =’31-Dec-1961 </li></ul><ul><li>ADD_MONTHS(TO_DATE(’31-Jan-1999’,’d-mon-yyyy’),1) =’28-Feb-1999 </li></ul><ul><li>注意,在上面的第三个例子中,函数将不得不将 31 日往回调整为 28 日,已使结果对应新一月的最后一天。因为, 1999 年的 2 月份只有 28 天。在第二个例子中,则是从 30 往后调整为 31 ,也同样是为了保持对应的最后一天。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  11. 11. SQL 内置函数 <ul><li>ASCII </li></ul><ul><li>ASCII 函数返回你指向的字符串首字母的十进制表示代表码值。该返回值或许是 ASCII 码值,也或许不是。如果用户的数据库字符集是 7 位的 ASCII 值,那就得到一 ASCII 码值。该返回值总是以用户使用的字符集为基础的。 </li></ul><ul><li>ASCII(string) </li></ul><ul><li>其中: string 一个字符串。更多的时候就是一字符 </li></ul><ul><li>下面的例子解释了该函数的使用: </li></ul><ul><li>ASCII(‘j’)=74 </li></ul><ul><li>ASCII(‘jeff’)=74 </li></ul><ul><li>从上面的第二个例子,我们不难看出,如果指定了一个多字符串,该函数将忽略除首字母外的所有字符。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  12. 12. SQL 内置函数 <ul><li>ASIN </li></ul><ul><li>ASIN 函数返回一数值的反正弦值。结果以弧度表示,且在 -PI/2 到 PI/2 之间。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>ASIN(number) </li></ul><ul><li>其中: number 必须是 -1 与 1 之间的值 </li></ul><ul><li>下面的例子显示了 1 和 -1 的反正弦值: </li></ul><ul><li>ASIN(1)=1.57 </li></ul><ul><li>ASIN(-1)=-1.57 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  13. 13. SQL 内置函数 <ul><li>ATAN </li></ul><ul><li>ATAN 函数返回一数值的反正切值。结果以弧度表示,且在 -PI/2 到 PI/2 之间。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>ATAN(number) </li></ul><ul><li>其中: number 必须是 -1 与 1 之间的值 </li></ul><ul><li>下面的例子显示了 1 和 -1 的反正切值: </li></ul><ul><li>ATAN(1)=0.7854 </li></ul><ul><li>ATAN(-1)=-0.7854 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  14. 14. SQL 内置函数 <ul><li>ATAN2 </li></ul><ul><li>ATAN2 函数返回两个数值的反正切值。结果以弧度表示。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>ATAN2 ( first,second) </li></ul><ul><li>其中: </li></ul><ul><li>first 第一个数 </li></ul><ul><li>second 第二个数 </li></ul><ul><li>函数 ATAN2 ( first,second )与函数 TAN(first/second) 的功能是相同的。 </li></ul><ul><li>下面的例子显示了 1 和 -1 的反正切值: </li></ul><ul><li>ATAN2(1,.5)=1.107 </li></ul><ul><li>TAN(1/.5)=1.107 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  15. 15. SQL 内置函数 <ul><li>BFILENAME </li></ul><ul><li>BFILENAME 函数返回一指向磁盘的物理文件的 BFILE 地址。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>BFILENAME(directory,filename) </li></ul><ul><li>其中: </li></ul><ul><li>directory 一个包括指定文件的目录路径字符串。 该目录通过命令 CREATE DIRECTORY 产生。 但它不是一个操作系统目录 </li></ul><ul><li>filename 指定目录中用户试图指定的文件名字。 该文件可以是预先不存在的文件 </li></ul><ul><li>下面的例子解释了 BFILENAME 函数的使用情况: </li></ul><ul><li>BFILENAME(‘gif_dir’,’book_photo.gif’) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  16. 16. SQL 内置函数 <ul><li>CEIL </li></ul><ul><li>CEIL 函数根据输入值返回一个数值。输入参数可以是非整数值,但返回结果则是大于等于输入参数的最小整数。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CEIL(number) </li></ul><ul><li>其中: </li></ul><ul><li>number 任意数值,十进制数 </li></ul><ul><li>下面的例子解释了 CEIL 函数的使用情况: </li></ul><ul><li>CEIL(5.1)=6 </li></ul><ul><li>CEIL(-5.1)=-5 </li></ul><ul><li>应注意,对于负数使用该函数的结果。大于等于 -5 。 1 的最小整数精确地讲应该是 -5 。这是数学上的情况,但首先也是记数中知觉上的感觉。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  17. 17. SQL 内置函数 <ul><li>CHARTOROWID </li></ul><ul><li>CHARTOROWID 函数将一个字符串转换成 rowid 类型。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CHARTOROWID(string) </li></ul><ul><li>其中: </li></ul><ul><li>string 待处理的字符串。该字符串应该能表示一个有效的 rowid 型数据 </li></ul><ul><li>下面的例子解释了 CHARTOROWID 函数的使用情况: </li></ul><ul><li>SQL>SELECT ROWID FORM dual; </li></ul><ul><li>ROWID </li></ul><ul><li>---------- </li></ul><ul><li>AAAADCAABAAAAVUAAA </li></ul><ul><li>SQL>SELECT * FORM dual </li></ul><ul><li> 2 WHERE ROWID=CHARTOROWID(‘AAAADCAABAAAAVUAAA’); </li></ul><ul><li>D </li></ul><ul><li>- </li></ul><ul><li>X </li></ul>Oracle 8i 数据库管理 WinnerSoft
  18. 18. SQL 内置函数 <ul><li>CHR </li></ul><ul><li>CHR 函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个 ASCII 值,使用 CHR 函数返回该数值表示的字符。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CHR(integer[USING NCHAR_CS]) </li></ul><ul><li>其中: </li></ul><ul><li>integer 在相应的字符集中,代表对应字符 的整数类型 </li></ul><ul><li>USING NCHAR_CS 指明相应的字符集 </li></ul><ul><li>下面的例子解释了 CHR 函数的使用情况: </li></ul><ul><li>CHR(10)=a tab character </li></ul><ul><li>CHR(65)=‘A’ </li></ul><ul><li>这些例子假设基于 ASCII 字符集 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  19. 19. SQL 内置函数 <ul><li>CONCAT </li></ul><ul><li>CONCAT 函数将两个输入字符串,组合成一个,并返回结果。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CONCAT(string_1,string_2) </li></ul><ul><li>其中: </li></ul><ul><li>string_1 第一个字符串 </li></ul><ul><li>string_2 第二个字符串。该字符串将被拼接在第一 个字符串的尾部 </li></ul><ul><li>下面的例子解释了 CONCAT 函数的使用情况: </li></ul><ul><li>CONCAT(‘This is’,’a test’)=‘This is a test’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  20. 20. SQL 内置函数 <ul><li>CONVERT </li></ul><ul><li>CONVERT 函数把一字符串从一个字符集转换到另一字符集。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>CONVERT(string,dest_char_set[,source_char_set]) </li></ul><ul><li>其中: </li></ul><ul><li>string 待转换的字符串 </li></ul><ul><li>dest_char_set 目标字符串 </li></ul><ul><li>source_char_set 源字符集。省略默认数据库字符集 </li></ul><ul><li>下面的例子解释了 CONVERT 函数的使用情况: </li></ul><ul><li>CONVERT(‘Jonathan’,’WE8EBDIC37C’,’US7ASCII’) </li></ul><ul><li>CONVERT(‘Jonathan’,’WE8ROMAN8’) </li></ul><ul><li>第一个例子从 US7ASCII 字符集转换。第二个例子从默认数据库字符集转换。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  21. 21. SQL 内置函数 <ul><li>COS </li></ul><ul><li>COS 函数返回一角度的余弦值。结果为弧度值。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>COS(angle) </li></ul><ul><li>其中: </li></ul><ul><li>angle 角度值,用弧度表示 </li></ul><ul><li>下面的例子解释了 COS 函数的使用情况: </li></ul><ul><li>COS(90*3.14/180)=.000796 </li></ul><ul><li>COS(0)=1 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  22. 22. SQL 内置函数 <ul><li>COSH </li></ul><ul><li>COSH 函数返回一角度的双曲余弦值。 </li></ul><ul><li>其语法格式如下: </li></ul><ul><li>COSH(angle) </li></ul><ul><li>其中: </li></ul><ul><li>angle 角度值,以弧度表示 </li></ul><ul><li>下面的例子解释了 COSH 函数的使用情况: </li></ul><ul><li>COSH(0)=1 </li></ul><ul><li>COSH(90*3.14/180)=2.507 </li></ul><ul><li>将角度值转化成弧度值,可以参考 COS 函数的有关部门信息 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  23. 23. SQL 内置函数 <ul><li>DECODE( 一 ) </li></ul><ul><li>DECODE 函数相当于一条件语句 (IF). 它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于 SQL 的其它函数, DECODE 函数还能识别和操作空值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>DECODE(input_value,value,result[,value,result…][,default_result]); </li></ul><ul><li>其中: </li></ul><ul><li>input_value 试图处理的数值。 DECODE 函数将该数值与一系列的序偶相比 较,以决定最后的返回结果 </li></ul><ul><li>value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应 的结果将被返回。对应一个空的返回值,可以使用关键字 NULL 于之对应 </li></ul><ul><li>result 是一组成序偶的结果值 </li></ul><ul><li>default_result 未能与任何一序偶匹配成功时,函数返回的默认值 </li></ul><ul><li>下面的例子说明了,人们如何读取用户 CHECKUP 表 SEAPARK 中的 BLOOD_TEST_FLAG 列下的项目,作为 DECODE 函数的实参支持值。 </li></ul><ul><li>SELECT checkup_type, </li></ul><ul><li>DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’, </li></ul><ul><li>’ Invalid’) </li></ul><ul><li>FROM checkup; </li></ul>Oracle 8i 数据库管理 WinnerSoft
  24. 24. SQL 内置函数 <ul><li>DECODE( 二 ) </li></ul><ul><li>这个 SQL 语句展示了 DECODE 函数的左右基础功能特征。函数的输入值时 BLOOD_TEST_FLAG 列的数据,如果该列的值是‘ Y’, 那么,函数返回‘ YES’ 。如果该列的值是 NULL ,那么,函数返回‘ None’ 。如果没有与任何一个序偶匹配成功,则表示该列当前值无效,函数返回‘ Invalid’ 。 </li></ul><ul><li>在 SQL 疑难问题中, DECODE 函数常常发挥非常灵活的作用。其中的一个技术就是为了某种目的可以将一个表的行转换成列。例如: </li></ul><ul><li>SQL>SELECT TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’), </li></ul><ul><li>2 COUNT(*) </li></ul><ul><li>3 FROM AQUATIC_ANIMAL </li></ul><ul><li>4 WHERE TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’) </li></ul><ul><li>5 IN(‘1995’,’1996’,’1997’) </li></ul><ul><li>6 GROUP BY TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’); </li></ul><ul><li>TO_C COUNT(*) </li></ul><ul><li>--- ------- </li></ul><ul><li>1995 1 </li></ul><ul><li>1996 3 </li></ul><ul><li>1997 1 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  25. 25. SQL 内置函数 <ul><li>该例告诉我们, 1995 、 1996 和 1997 年各出生了多少动物。每一行显示不同的年。一旦希望将这些数值显示成 3 列,该如何处理?可以通过如表 B-1 所示的方法处理之。 </li></ul>Oracle 8i 数据库管理 WinnerSoft 该例中,为了生成结果集合中的 3 列, BIRTH_DATE 被引用了 3 次。为了过滤出正确的返回年份,每次引用均引用了函数 DECODE 。例如,在第一列中, DECODE 函数将所有的 1995 日期值转换成 1 ,其他的均转换成 0 ,再利用 SUM 函数求出其汇总值,从而达到求取在 1995 年诞生的动物数目。 1996 和 1997 年的情况类似。 SQL>SELECT SUM( DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1995’,1,0))BORN_1995 SUM(DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1996’,1,0))BORN_1996 SUM(DECODE(TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’),’1997’,1,0))BORN_1997 FROM AQUATIC_ANIMAL WHERE TO_CHAR(TRUNC(BIRTH_DATE,’YEAR’),’YYYY’) IN(‘1995’,’1996’,’1997’) ; BORN_1995 BORN_1996 BORN_1997 ----- ----- ----- 1 3 1 使用 DECODE 查询
  26. 26. SQL 内置函数 <ul><li>EMPTY_BLOB </li></ul><ul><li>EMPTY_BLOB 函数返回一空的 BLOB 指针,该指针可以用在 INSERT 或 UPDATE 命令中,以初始化 BLOB 列项。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>EMPTY_BLOB() </li></ul><ul><li>该函数没有参数。下面的例子说明了如何使用该函数初始化 BLOB 列,并作为一个新行插入到表中。 </li></ul><ul><li>INSERT INTO some_table </li></ul><ul><li>(blob_column) </li></ul><ul><li>VALUE S (EMPTY_BLOB()); </li></ul>Oracle 8i 数据库管理 WinnerSoft
  27. 27. SQL 内置函数 <ul><li>EMPTY_CLOB </li></ul><ul><li>EMPTY_CLOB 函数与 EMPTY_BLOB 函数的功能类似,只不过对应 CLOB 而已。它返回一空的 CLOB 指针,该指针可以用在 INSERT 或 UPDATE 命令中,以初始化 CLOB 列。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>EMPTY_CLOB() </li></ul><ul><li>该函数没有参数。下面的例子说明了如何使用该函数初始化 CLOB 列,并作为一个新行插入到表中。 </li></ul><ul><li>INSERT INTO some_table </li></ul><ul><li>(clob_column) </li></ul><ul><li>VALUE(EMPTY_CLOB()); </li></ul>Oracle 8i 数据库管理 WinnerSoft
  28. 28. SQL 内置函数 <ul><li>EXP </li></ul><ul><li>EXP 函数返回 e 的一个幂。在数学上 e 经常被用来表示一指定的特殊数值(一个十进制的无限数) 2.178… ,它是数学的基础。其具体的语法格式如下: </li></ul><ul><li>EXP(exponent) </li></ul><ul><li>其中: </li></ul><ul><li>exponent 返回 e 的少次( exponent )幂 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>EXP(1)=2.7182818 </li></ul><ul><li>EXP(3)=20.085537(2.7182818*2.7182818*2.7182818) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  29. 29. SQL 内置函数 <ul><li>FLOOR </li></ul><ul><li>FLOOR 函数返回一个小于或等于给定十进制数的最大整数。该函数的工作机制与函数 CEIL 的情况极为相似,但却正好相反。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>FLOOR(number) </li></ul><ul><li>其中: </li></ul><ul><li>number 任意数,包括十进制数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li> FLOOR ( 5.1 ) =5 </li></ul><ul><li> FLOOR ( -5.1 ) =-6 </li></ul><ul><li>为了理解函数 FLOOR 和函数 CEIL 在处理负数时的不同机制,可以比较函数 FLOOR ( 5.1 )和函数 CEIL(-5.1) 的执行结果。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  30. 30. SQL 内置函数 <ul><li>GREATEST </li></ul><ul><li>GREATEST 函数返回一数值列表中的最高数值。可使用 GREATEST 函数处理数字数据和字符数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>GREATEST ( value,value,value,… ) </li></ul><ul><li>其中: </li></ul><ul><li>value 数字数据或文本数据。一般地,所有数值的类型应该一致。 如果给定的数据类型相混,返回值将匹配第一个参数类型, 其余的所有参数自然被转换成对应的类型 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>GREATEST ( 1 , 3 , 9 , 45 , 93 , 2 , -100 ) =93 </li></ul><ul><li>GREATEST (’ Jenny’,’Jeff’,’Ashley’ ) = ’Jenny’ </li></ul><ul><li>GREATEST (’ 11’,101 ) =‘11’ </li></ul><ul><li>第三个例子反映了参数类型相混时的函数处理情况。因为第一的数据类型是字符串,所以, Oracle 将数字 1 转换成字符串‘ 1’ ,以匹配对应的数据类型。虽然在数值上 101 大于 11 ,但如果都转换成字符串,则结果正好相反。这种情况下,‘ 11’ 大于‘ 101’ ,并且,也是函数的返回结果。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  31. 31. SQL 内置函数 <ul><li>HEXTORAW </li></ul><ul><li>函数 HEXTORAW 将一个由十六进制字符组成的字符串转换成一个 raw 数值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>HEXTORAW ( string ) </li></ul><ul><li>其中: </li></ul><ul><li>string 十六进制字符组成的字符串数据 </li></ul>Oracle 8i 数据库管理 WinnerSoft 注意:在调用函数时, raw 项中的数值是精确表示的(十进制数 65= 十六进制数 41 ) SQL>CREATE TABLE xx (y raw(10)); Table created. SQL>INSERT INTO xx VALUES(HEXTORAW(‘414243’)); 1 row created. AQL>SELECT DUMP(y) FROM xx; DUMP(Y) ------------------------ Typ=23 Len=3:65,66,67 函数 HEXTORAW 应用情况举例
  32. 32. SQL 内置函数 <ul><li>INITCAP </li></ul><ul><li>INITCAP 函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。 </li></ul><ul><li>其的语法格式如下: </li></ul><ul><li>INITCAP(string) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意一 VARCHAR2 或 CHAR 型数据 </li></ul><ul><li>下面是该函数的使用情况。 </li></ul><ul><li>INITCAP(‘This is a test’=‘This is a test’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  33. 33. SQL 内置函数 <ul><li>INSTR </li></ul><ul><li>函数 INSTR 会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>INSTR ( string,substring[,start[,occurrence]] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 待查询的字符串 </li></ul><ul><li>substring 正在搜索的字符串 </li></ul><ul><li>start 说明开始搜索的字符位置。默认值是 1 ,就是说,搜 索将从字符串的第一个字符开始。如果,参数为负 则表示搜索的位置从右边开始计算,而不是默认的 从左边开始 </li></ul><ul><li>occurrence 指定试图搜索的子串的第几次出现,默认值是 1 ,意 味着希望其首次出现 </li></ul><ul><li>该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了 INSTR 函数的使用情况: </li></ul><ul><li>INSTR(‘AAABAABA’,’B’)=4 </li></ul><ul><li>INSTR(‘AAABAABA’,’B’,1,2)=7 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  34. 34. SQL 内置函数 <ul><li>INSTRB </li></ul><ul><li>该函数与 INSTR 的功能极为类似,也将反馈其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。只是该函数返回的是一字节索引位置,而不是一字符索引位置。其实,仅仅在多个字符集同时被使用时,这种不同才有意义。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>INSTRB ( string,substring[,start[,occurrence]] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 待查询的字符串 </li></ul><ul><li>substring 正在搜索的字符串 </li></ul><ul><li>start 说明开始搜索的字符位置。默认值是 1 ,就是说,搜索将从字 符串的第一个字符开始。如果,参数为负则表示搜索的位置从 右边开始计算,而不是默认的从左边开始 </li></ul><ul><li>occurrence 指定试图搜索的子串的第几次出现,默认值是 1 ,意味着希望 其首次出现 </li></ul><ul><li>该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了 INSTRB 函数的使用情况: </li></ul><ul><li>INSTRB(‘AAABAABA’,’B’)=4 </li></ul><ul><li>INSTRB(‘AAABAABA’,’B’,1,2)=7 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  35. 35. SQL 内置函数 <ul><li>LAST_DAY </li></ul><ul><li>函数 LAST_DAY 返回实参数指定日期对应月份的最后一天。其具体的语法格式如下: </li></ul><ul><li>LAST_DAY ( date ) </li></ul><ul><li>其中: </li></ul><ul><li>date 一日期数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LAST_DAY(TO_DATE(’29-Dec-1988’,’dd-mon-yyyy’)) </li></ul><ul><li>=’31-Dec-1988’ </li></ul><ul><li>LAST_DAY(TO_DATE(’1-Feb-2000’,’dd-mon-yyyy’)) </li></ul><ul><li>=’29-Feb-2000 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  36. 36. SQL 内置函数 <ul><li>LEAST </li></ul><ul><li>LEAST 函数返回参数给定的数值列表中的最小值。对数值数据或字符串数据均有效。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LEAST ( value,value,value,… ) </li></ul><ul><li>其中: </li></ul><ul><li>value 一数字或文本数值。尤其要注意的是所有的数据类 型应该一致。如果类型相混,返回值将匹配第一个 参数的数据类型,而且,其它所有的参数均被转换 成该参数的数据类型 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LEAST ( 1 , 3 , 9 , 45 , 93 , 2 , -100 ) =-100 </li></ul><ul><li>LEAST (’ Jenny’,’Jeff’,’Ashley’ ) =‘Ashley’ </li></ul><ul><li>LEAST (’ 110’,12 ) =‘110’ </li></ul><ul><li>第三个例子说明了,当参数的数据类型相混时函数的处理机制。因为第一个参数实字符串,所以,将数字 1 转换成字符串‘ 1’ ,一匹配对应的数据类型。虽然在数值上 110 大于 12 ,但如果都转换成字符串,则结果正好相反。这种情况下,‘ 12’ 大于‘ 110’ (一顺序为基础),这就是函数的返回结果。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  37. 37. SQL 内置函数 <ul><li>LENGTH </li></ul><ul><li>LENGTH 函数返回字符串的长度。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LENGTH(string) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LENGTH (’ This is short’ ) =13 </li></ul><ul><li>LENGTH (’ This is a bit longer’ ) =20 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  38. 38. SQL 内置函数 <ul><li>LENGTHB </li></ul><ul><li>LENGTHB 函数返回字符串的长度。但在多字符集同时使用时会有所区别。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LENGTHB(string) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LENGTHB (’ This is short’ ) =13 </li></ul><ul><li>LENGTHB (’ This is a bit longer’ ) =20 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  39. 39. SQL 内置函数 <ul><li>LN </li></ul><ul><li>函数 LN 返回一数值的自然对数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LN ( number ) </li></ul><ul><li>其中: </li></ul><ul><li>number 大于 0 的任意数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LN ( 10 ) =2.3025851 </li></ul><ul><li>EXP(2.3025851)=10 </li></ul><ul><li>可见,将函数 LN 的结果作为参数,通过再调用函数 EXP 可得到函数 LN 的原参数值。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  40. 40. SQL 内置函数 <ul><li>LOG </li></ul><ul><li>LOG 函数返回数值的非自然对数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LOG ( logbase,number ) </li></ul><ul><li>其中: </li></ul><ul><li>logbase 除 1 和 0 以外的任意数值,是对数的底 </li></ul><ul><li>number 及对数的真数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LOG ( 10 , 100 ) =2 </li></ul><ul><li>LOG ( EXP(1),10 ) =2.3025851=LN(10) </li></ul><ul><li>因为 10 2 等于 100 ,所以,以 10 为底时 100 的对数是 2 。注意: LOG ( e,x ) =LN(x). 可以使用 EXP(1) 得到 e 的值。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  41. 41. SQL 内置函数 <ul><li>LOWER </li></ul><ul><li>函数 LOWER 返回参数指定字符串的小写形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LOWER ( atring ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 型或 CHAR 型的数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LOWER (’ This IS a Test’ ) =‘This is a test’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  42. 42. SQL 内置函数 <ul><li>LPAD </li></ul><ul><li>LPAD 函数从左面填充指定的字符串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LPAD ( string,numchars[,padding] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 型或 CHAR 型的字符串 </li></ul><ul><li>numchars 返回字符串的字符个数 </li></ul><ul><li>padding 填充字符。是一可选项,默认为单个空格 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LPAD (’ Jenny’,10 ) =‘Jenny’(5 leading spaces) </li></ul><ul><li>LPAD (’ Jenny’,10,’*’ ) =‘*****Jenny’ </li></ul><ul><li>LPAD (’ Jenny’,10,’*!’ ) =‘*!*!*Jenny’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  43. 43. SQL 内置函数 <ul><li>LTRIM </li></ul><ul><li>LTRIM 函数删除字符串左边的前缀字符。一般前缀字符总是空格。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>LTRIM ( string[,trimchars] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 型或 CHAR 型的数值 </li></ul><ul><li>trimchars 待删除的字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>LTRIM (’ Jeff’ ) =‘Jeff’(leading spaces removed) </li></ul><ul><li>LTRIM (’ *****Jeff’,’*’ ) =‘Jeff’ </li></ul><ul><li>LTRIM (’ *!*!*Jeff’,’*!’ ) =‘Jeff’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  44. 44. SQL 内置函数 <ul><li>MOD </li></ul><ul><li>MOD 函数返回一个数除以另一数的余数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>MOD ( number,divisor ) </li></ul><ul><li>其中: </li></ul><ul><li>number 任意数值 </li></ul><ul><li>divisor 任意数值。该函数计算 number/divisor 的余数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>MOD ( 14 , 12 ) =2 ( 1400 hours=2:00 O’Clock ) </li></ul><ul><li>MOD ( 10 , 10 ) =0 </li></ul><ul><li>MOD ( 10 , 0 ) =10 </li></ul><ul><li>注意:如果除数为 0 则返回原来的数 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  45. 45. SQL 内置函数 <ul><li>MONTHS_BETWEEN </li></ul><ul><li>MONTHS_BETWEEN 函数返回两个日期之间的月份数 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>MONTHS_BETWEEN ( date_1,date_2 ) </li></ul><ul><li>其中: </li></ul><ul><li>date_1 日期型数据 </li></ul><ul><li>date_2 一日期型数据 </li></ul><ul><li>如果两个参数代表的是某月中的同一日期,或它们军代表的某月中的最后一天,则该函数返回一整型值。否则,将返回一分数。另外,如果第一个参数代表的日期小于第二个参数代表的日期,则返回一负值。 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>MONTHS_BETWEEN ( TO_DATE(’29-Dec-1999’,’dd-mon-yyyy’), </li></ul><ul><li>TO_DATE(’29-Dec-1988’,’dd-mon-yyyy’) ) =132 </li></ul><ul><li>MONTHS_BETWEEN ( TO_DATE(’29-Dec-1999’,’dd-mon-yyyy’), </li></ul><ul><li>TO_DATE(’24-Nov-1988’,’dd-mon-yyyy’) ) =133.16129 </li></ul><ul><li>在第一个例子中,两个参数均为某一月中的 29 号,所以返回一整型值(其间相差的月份数),在第二个例子中,因两个参数表示的日期不是同一天,所以返回一分数(以 31 天为基础计算处理) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  46. 46. SQL 内置函数 <ul><li>NEW_TIME </li></ul><ul><li>NEW_TIME 函数将在时区间转换日期 / 时间数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>NEW_TIME ( date,oldzone,newzone ) </li></ul><ul><li>其中: </li></ul><ul><li>date 一日期数值。在 Oracle 中,除其自己以外,所有日 期数值都有时间和记号这样的成分 </li></ul><ul><li>oldzone 代表时区的字符串。有效的时区如表所示。被推算 出的日期数值就在该时区当中 </li></ul><ul><li>newzone 也是代表时区的字符串。被从老时区到新时区转换的日期数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>NEW_TIME ( TO_DATE(’25-Dec-1999 8:00’,’dd-mom-yyyy HH:MI’ ) ,’EST’,’PST’)=’25-DEC-1999 05:00’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  47. 47. SQL 内置函数 <ul><li>NEXT_DAY </li></ul><ul><li>NEXT_DAY 函数返回从实参日期开始,紧随其后的指定星期对应的日期。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>NEXT_DAY ( date,weekday ) </li></ul><ul><li>其中: </li></ul><ul><li>date 一日期数据 </li></ul><ul><li>weekday 一字符串,说明某一天的星期几的名称。可以使用全称,也可以使用缩写,但对于用户的编程语言做的日期设置来说必须是有效的日期 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>NEXT_DAY ( TO_DATE(’24-Nov-1999’),’dd-mon-yyyy’,’FRIDAY’ ) </li></ul><ul><li>=’26-Nov-1999’ </li></ul><ul><li>NEXT_DAY ( TO_DATE(’24-Nov-1999’),’dd-mon-yyyy’,’WED’ ) </li></ul><ul><li>=’01-Dec-1999’ </li></ul><ul><li>注意:在第二个例子当中, 24-Nov-1999 正好落在星期三: Wednesday 。下一个’ WED’ 自然就是 1-Dec-1999 ,所以,函数 NEXT-DAY 返回的结果就是 </li></ul><ul><li>’ 01-Dec-1999’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  48. 48. SQL 内置函数 <ul><li>NVL </li></ul><ul><li>NVL 函数需要两个参数。如果第一个参数为空,则返回第二个参数。第二个参数表示是第一个参数的替换对象。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>NVL ( value,alternative ) </li></ul><ul><li>其中: </li></ul><ul><li>value 一个可为空的值。它不为空的时候将作为返回值 </li></ul><ul><li>alternative 只要它不是空的就是将被返回的值 </li></ul><ul><li>下面是该函数处理数据库的某些列包括空值时的情况: </li></ul><ul><li>SELECT emp_id,NVL(emp_name,’Name Missing!’) </li></ul><ul><li>FROM emp_table; </li></ul><ul><li>在该例中,如果雇员有名字,将通过该函数返回其名字。如果雇员的名字为空,将返回‘ Name Missing!’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  49. 49. SQL 内置函数 <ul><li>POWER </li></ul><ul><li>函数 POWER 返回一个数值的指定次幂。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>POWER(number,power) </li></ul><ul><li>其中: </li></ul><ul><li>number 任意数值 </li></ul><ul><li>power 幂次数。函数的结果其实即: number 幂次。如果第 一个参数为负数,则该幂次数务必是一整数。其它 情况可为任意数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>POWER(10,2)=100(10*10) </li></ul><ul><li>POWER(10,3)=1000 </li></ul><ul><li>POWER(-10,3)=-1000 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  50. 50. SQL 内置函数 <ul><li>RAWTOHEX </li></ul><ul><li>RAWTOHEX 函数将一 raw 转换成十六进制字符表示的串值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>RAWTOHEX ( raw_value ) </li></ul><ul><li>其中: </li></ul><ul><li>raw_value 一 RAW 型数值 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL> CREATE TABLE xx(y raw(10)); </li></ul><ul><li>Table created. </li></ul><ul><li>SQL> INSERT INTO xx VALUES(HEXTORAW(‘414243’)); </li></ul><ul><li>1 row created. </li></ul><ul><li>SQL> SELECT RAWTOHEX(y) FORM xx; </li></ul><ul><li>RAWTOHEX(Y) </li></ul><ul><li>------ </li></ul><ul><li>414243 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  51. 51. SQL 内置函数 <ul><li>REPLACE </li></ul><ul><li>REPLACE 函数在一字符串中搜索一指定的子串,并将其替换成另外一指定串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>REPLACE ( string,substring[,replace_string] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 被搜索字符串。在其中搜索待替换串 </li></ul><ul><li>substring 被搜索子串。所有找到的子串均被替换掉 </li></ul><ul><li>replace_string 替换结果子串。是一可选项。如果该参数被忽略, 则所有被搜索到的子串实质上均被删除 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>REPLACE (’ This is a test’,’is’,’was’ ) =‘Thwas was a test’ </li></ul><ul><li>REPLACE (’ This is a test’,’is’ ) =‘Th a test’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  52. 52. SQL 内置函数 <ul><li>ROUND(for dates) </li></ul><ul><li>ROUND 函数将一日期处理(舍入)成第二个参数指定的形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>ROUND(date[,fmt]) </li></ul><ul><li>其中: </li></ul><ul><li>date 一个日期数值 </li></ul><ul><li>fmt 是一个日期格式说明符。指定日期将被处理成该说明符指定的 形式。省略该参数,则指定日期将被处理到最近的一天 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>ROUND(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’)) </li></ul><ul><li>=’25-Nov-1999 12:00:00 am’ </li></ul><ul><li>ROUND(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’),’hh’) </li></ul><ul><li>=’24-Nov-1999 09:00:00 am’ </li></ul><ul><li>注意:这种处理过程可能意味着日期数值的改变。在第一个例子中,因为 8 : 00 PM 是紧邻第二天的一精确值,所以处理结果被转到下一天( 25th )而不是当天( 24th ) . </li></ul>Oracle 8i 数据库管理 WinnerSoft
  53. 53. SQL 内置函数 <ul><li>ROUND(for number) </li></ul><ul><li>ROUND 函数将一数值处理(舍入)成第二个参数指定的形式的十进制数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>ROUND(value,places) </li></ul><ul><li>其中: </li></ul><ul><li>value 试图转换的数值 </li></ul><ul><li>places 结果中的十进制数位置。必须是一正整数,但可能是一负数。如果是负数,数字就被精确地处理在从小数点其左数的十进制数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>ROUND(89 , 985 , 2)=89.90 ( Note that .005 is rounded up. ) </li></ul><ul><li>ROUND(89 , 985 , -1)=90 </li></ul><ul><li>ROUND(89 , 985 , -2)=100 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  54. 54. SQL 内置函数 <ul><li>ROWIDTOCHAR </li></ul><ul><li>ROWIDTOCHAR 函数将一行标志码( ROWID )转换成一字符串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>ROWIDTOCHAR ( rowid ) </li></ul><ul><li>其中: </li></ul><ul><li>rowid 一 ROWID 型数据 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL>SELECT ROWIDTOCHAR(ROWID) FROM dual; </li></ul><ul><li>ROWIDTOCHAR(ROWID) </li></ul><ul><li>---------- </li></ul><ul><li>AAAADCAABAAAAVUAAA </li></ul>Oracle 8i 数据库管理 WinnerSoft
  55. 55. SQL 内置函数 <ul><li>RPAD </li></ul><ul><li>RPAD 函数在字符串的后面追加若干字符。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>RPAD ( string,numchars[,padding] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 型或 CHAR 型的数据 </li></ul><ul><li>numchars 函数结果串的长度 </li></ul><ul><li>padding 追加字符,单个的。是可选项,默认为空格 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>RPAD(‘Jenny’,10)=‘Jenny ’(5 trailing spaces) </li></ul><ul><li>RPAD(‘Jenny’,10,’*’)=‘Jenny*****’ </li></ul><ul><li>RPAD(‘Jenny’,10,’*!’)=‘Jenny*!*!*’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  56. 56. SQL 内置函数 <ul><li>RTRIM </li></ul><ul><li>RTRIM 函数压缩掉串右面的尾随字符,常常是从指定字符串(第一参数)中压缩空格。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>RTRIM ( string[,trimchars] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 型或 CHAR 型的数据 </li></ul><ul><li>trimchars 准备压缩掉的字符(串) </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>RTRIM(‘Jeff ’)= ‘Jeff’(trailing spaces removed) </li></ul><ul><li>RTRIM(‘Jenny*****’)= ‘Jeff’ </li></ul><ul><li>RTRIM(‘Jenny*!*!*’)= ‘Jeff’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  57. 57. SQL 内置函数 <ul><li>SIGN </li></ul><ul><li>SIGN 函数返回实参的符号。对于负数返回 -1 , 0 返回 0 ,正数返回 +1 。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SIGN ( value ) </li></ul><ul><li>其中: </li></ul><ul><li>value 输入的实参,你试图返回它的符号 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SIGN ( -100 ) =-1 </li></ul><ul><li>SIGN ( 0 ) =0 </li></ul><ul><li>SIGN ( 100 ) =1 </li></ul><ul><li>可以使用该函数和 DECODE 函数,根据一个数值的正、负或 0 ,指明表达式间的不同。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  58. 58. SQL 内置函数 <ul><li>SIN </li></ul><ul><li>SIN 函数返回一个角度的正弦值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SIN ( angle ) </li></ul><ul><li>其中: </li></ul><ul><li>angle 待求解其正弦的角度。是一角度表达式。可参考函数 COS 了解从弧度到角度的转换 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SIN ( 90*3.1415926/180 ) =1 </li></ul><ul><li>SIN ( 0 ) =0 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  59. 59. SQL 内置函数 <ul><li>SOUNDEX </li></ul><ul><li>SOUNDEX 函数根据以下规则返回一个字符串的发音描述。 </li></ul><ul><li>1 、保留字符串的首字母 </li></ul><ul><li>2 、删除下面的所有字母: a 、 e 、 h 、 I 、 o 、 u 、 w 和 y 。 </li></ul><ul><li>3 、首字母后面的任一字母均按如下规则匹配于某一数字: </li></ul><ul><li>b,f,p,v=1 </li></ul><ul><li>c,g,j,k,q,s,x,z=2 </li></ul><ul><li>d,t=3 </li></ul><ul><li>I=4 </li></ul><ul><li>m,n=5 </li></ul><ul><li>r=6 </li></ul><ul><li>4 、结果被缩写并转换成一个 4 位的数字 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SOUNDEX ( string ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SOUNDEX(‘Gennick’)=520 SOUNDEX(‘Genick’)=520 SOUNDEX(‘Genyk’)=520 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  60. 60. SQL 内置函数 <ul><li>SORT </li></ul><ul><li>SORT 函数返回一数字的算术平方根。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SORT ( number ) </li></ul><ul><li>其中: </li></ul><ul><li>number 试图求解其平方根的数值,非负数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SORT ( 100 ) =10 ( because 10*10-100 ) </li></ul><ul><li>SORT ( 100 ) =3.1622777 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  61. 61. SQL 内置函数 <ul><li>SUBSTR </li></ul><ul><li>SUBSTR 返回一字符串得指定字串。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SUBSTR ( string,start,length ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意字符串 </li></ul><ul><li>start 字串的开始位置。第一个位置总匹配为 1 。该参数可以为 负数,这时从给定字符串的右面数起 </li></ul><ul><li>length 待匹配字串的长度。是一可选项,忽略它则匹配整个字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SUBSTR (’ JennyJeffJonathan’,6,4 ) =‘Jeff’ </li></ul><ul><li>SUBSTR (’ JennyJeffJonathan’,-12,4 ) =‘Jeff’ </li></ul><ul><li>SUBSTR (’ JennyJeffJonathan’,-8 ) =‘Jonathan’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  62. 62. SQL 内置函数 <ul><li>SUBSTRB </li></ul><ul><li>SUBSTRB 返回一字符串的指定部分。该函数与 SUBSTR 极为类似,只是该函数的 start 和 length 两参数均以字节为单位,而不是根据字符。这种区别只有在使用多种不同的字符集时才有意义。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SUBSTRB ( string,start[,length] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意字符串 </li></ul><ul><li>start 字串的开始位置。第一个位置总匹配为 1 。该参数可 以为负数,这时从给定字符串的右面数起 </li></ul><ul><li>length 待匹配字串的长度。是一可选项,忽略它则匹配整 个字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SUBSTRB (’ JennyJeffJonathan’,6,4 ) =‘Jeff’ </li></ul><ul><li>SUBSTRB (’ JennyJeffJonathan’,-12,4 ) =‘Jeff’ </li></ul><ul><li>SUBSTRB (’ JennyJeffJonathan’,-8 ) =‘Jonathan’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  63. 63. SQL 内置函数 <ul><li>SYSDATE </li></ul><ul><li>SYSDATE 函数返回当前日期时间,一直到秒。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>SYSDATE </li></ul><ul><li>SYSDATE 没有参数。 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL>SELECT SYSDATE FROM DUAL; </li></ul><ul><li>SYSDATE </li></ul><ul><li>------- </li></ul><ul><li>24-Nov-1999 06:45:00 pm </li></ul><ul><li>当然,结果会由于用户调用该函数的时机不同而不同。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  64. 64. SQL 内置函数 <ul><li>TAN </li></ul><ul><li>TAN 函数返回一个角度的正切值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TAN ( angle ) </li></ul><ul><li>其中: </li></ul><ul><li>angle 用弧度表示。可参考函数 COS 了解从弧度到 角度的转换 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TAN ( 225*3.1415926535/180 ) =1 </li></ul><ul><li>TAN ( 0 ) =0 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  65. 65. SQL 内置函数 <ul><li>TANH </li></ul><ul><li>TANH 函数返回一个角度的十六进制正切值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TANH ( angle ) </li></ul><ul><li>其中: </li></ul><ul><li>angle 用弧度表示。可参考函数 COS 了解从弧度到 角度的转换 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TANH ( 225*3.1415926535/180 ) =.99922389 </li></ul><ul><li>TANH ( 0 ) =0 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  66. 66. SQL 内置函数 <ul><li>TO_CHAR(for dates) </li></ul><ul><li>TO_CHAR 函数将一个日期型数据转换成一个字符型数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_CHAR(date[,fmt[,’NLS_DATE_LANGUAGE=language’]]) </li></ul><ul><li>其中: </li></ul><ul><li>date 任一 DATE 型数据 </li></ul><ul><li>fmt 一个日期格式说明符,它控制了代表日期型数据的字符型结果 </li></ul><ul><li>language 使用的语言,它对日期拼读有影响,如在使用月份、日子、星期 等时 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL> SELECT TO_CHAR(SYSDATE,’dd-Mon-yyyy’) </li></ul><ul><li>FROM dual; </li></ul><ul><li>TO_CHAR(SYS </li></ul><ul><li>----- </li></ul><ul><li>24-Nov-1999 </li></ul><ul><li>SQL> SELECT TO_CHAR(SYSDATE,’Month’,’NLS_DATE_LANGUAGE=Spanish’) </li></ul><ul><li>FROM dual; </li></ul><ul><li>TO_CHAR(SY </li></ul><ul><li>----- </li></ul><ul><li>November </li></ul>Oracle 8i 数据库管理 WinnerSoft
  67. 67. SQL 内置函数 <ul><li>TO_CHAR(for numbers) </li></ul><ul><li>TO_CHAR 函数将一个数值型数据转换成一个字符型数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_CHAR(date[,fmt[,nlsparams]]) </li></ul><ul><li>其中: </li></ul><ul><li>date 任一数值型数据 </li></ul><ul><li>fmt 一个数字格式说明符,它控制了代表日期型数据的字符型结果 </li></ul><ul><li>nlsparams 数字的语言特征。该参数是由若干下列内容组成的字符串 : NLS_NUMERIC_CHARACTERS=“dg”,NLS_CURRENCY=“currchar”, 及 NLS_TERRITORY=territory </li></ul><ul><li>d 和 g 表示十进制符号和分隔符(在美国为逗号)。货币数值(在 美国的一个( $ )符号)常用来表示金钱数值。这两种数值均必 须放在引号中 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TO_CHAR(123.45)=‘123.45’ </li></ul><ul><li>TO_CHAR(123456.78,’$999,999.99’)=‘$123,456.78’ </li></ul><ul><li>TO_CHAR(123456.78,’L999G999D999’, </li></ul><ul><li>’ NLS_NUMERIC_CHARACTERS=“,.”NLS_CURRENCY=“!”’) </li></ul><ul><li>=‘!123.456,78’ </li></ul><ul><li>注意: NLS 参数没有什么效果,必须使用 L 、 G 和 D 通行符号、分隔符、小数点等等。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  68. 68. SQL 内置函数 <ul><li>TO_DATE </li></ul><ul><li>TO_DATE 函数将一个字符型数据转换成一个日期型数据。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_DATE(string [,fmt[,’NLS_DATE_LANGUAGE=language’]]) </li></ul><ul><li>其中: </li></ul><ul><li>string 待转换的字符串 </li></ul><ul><li>fmt 一个日期格式说明符,它控制了代表了转换字符时的处理方式,也是一可选项,忽略它,则使用数据库的默认方式 </li></ul><ul><li>language 使用的语言,也是可选项,对日期拼读有影响。 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>第一个 TO_DATE 函数将给定字符串解释成 8-Nov-1915; </li></ul><ul><li>下列显示了 TO_DATE 函数的用法: </li></ul><ul><li>TO_DATE (’ 11/08/1915’,’MM/DD/YY’ ) </li></ul><ul><li>下一次调用则将给定字符串解释成 11-Nov-1915; </li></ul><ul><li>TO_DATE (’ 11/08/1915’,’DD/MM/YY’ ) </li></ul><ul><li>最后一个例子将给定字符串解释成 11-Nov-1915; </li></ul><ul><li>TO_DATE (’ 11-Nov-1915’,’MM/DD/YYYY’ ) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  69. 69. SQL 内置函数 <ul><li>TO_LOB </li></ul><ul><li>TO_LOB 函数将一个 LONG 或 LONG RAW 型数据转换成下列类型: CLOB 、 BLOB 或 NCLOB 。当仅仅需要在 INSERT 语句中用 LONG 型数据代替 LOB 型数据时,可以使用该函数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_LOB ( long_value ) </li></ul><ul><li>其中: </li></ul><ul><li>long_value 待转换为 CLOB 或 NCLOB 等类型数据的一个 LONG 或 LONG RAW 型数据。 LONG RAW 型数据转 换成 BLOB 型数据 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>INSERT INTO new_table(clob_value) </li></ul><ul><li>SELECT TO_LOB(long_value) </li></ul><ul><li>FROM old_table </li></ul>Oracle 8i 数据库管理 WinnerSoft
  70. 70. SQL 内置函数 <ul><li>TO_NUMBER </li></ul><ul><li>TO_NUMBER 函数将一字符串转换成一数字。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TO_NUMBER ( string[,fmt[,’nlsparams’]] ) </li></ul><ul><li>其中: </li></ul><ul><li>string 待转换的字符串 </li></ul><ul><li>fmt 一数字格式说明符号。它将控制转换过程中的处理方式 </li></ul><ul><li>nlsparams 语言特征值。该字符串参数的组成部分有以下内容: NLS_NUMERIC_CHARACTERS=“dg”,NLS_CURRENCY=“currchar”, 及 NLS_TERRITORY=territory </li></ul><ul><li>d 和 g 表示十进制符号和分隔符(在美国为逗号)。货币数值 (在美国的一个( $ )符号)常用来表示金钱数值。这两种 数值均必须放在引号中 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>第一个 TO_NUMBER 函数将给定字符串解释成 123.45; </li></ul><ul><li>TO_NUMBER(‘123.45’) </li></ul><ul><li>下一次调用则将给定字符串解释成 123,456.78 </li></ul><ul><li>TO_NUMBER(‘$123,456.78’,’$999,999.99’) </li></ul>Oracle 8i 数据库管理 WinnerSoft
  71. 71. SQL 内置函数 <ul><li>TRIM </li></ul><ul><li>TRIM 函数将字符串的前缀(或尾随)字符删除。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TRIM ( [LEADING|TRAILING|BOTH][trimchar FROM] string ) </li></ul><ul><li>其中: </li></ul><ul><li>LEADING 指明仅仅将字符串的前缀字符删除 </li></ul><ul><li>TRAILING 指明仅仅将字符串的尾随字符删除 </li></ul><ul><li>BOTH 指明既删除前缀字符,也删除尾随字符。这也是默认方式 </li></ul><ul><li>string 任意一待处理字符串 </li></ul><ul><li>trimchar 可选项。指明试图删除什么字符,默认被删除的字符是空格 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TRIM (’ Ashley ’ ) =‘Ashley’ </li></ul><ul><li>TRIM ( LEADING ’*’ FROM’***Ashley***’ ) =‘Ashley***’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  72. 72. SQL 内置函数 <ul><li>TRUNC(for dates) </li></ul><ul><li>TRUNC 函数为指定元素而截去的日期值。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>TRUNC ( date[,fmt] ) </li></ul><ul><li>其中: </li></ul><ul><li>date 一个日期值 </li></ul><ul><li>fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TRUNC ( TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’) ) </li></ul><ul><li>=’24-Nov-1999 12:00:00 am’ </li></ul><ul><li>TRUNC ( TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’) ) =’24-Nov-1999 08:00:00 am’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  73. 73. SQL 内置函数 <ul><li>TRUNC(for number) </li></ul><ul><li>TRUNC 函数返回处理后的数值,其工作机制与 ROUND 函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 </li></ul><ul><li>其具体的语法格式如下 </li></ul><ul><li>TRUNC ( number[,decimals] ) </li></ul><ul><li>其中: </li></ul><ul><li>number 待做截取处理的数值 </li></ul><ul><li>decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>TRUNC ( 89.985 , 2 ) =89.98 </li></ul><ul><li>TRUNC ( 89.985 ) =89 </li></ul><ul><li>TRUNC ( 89.985 , -1 ) =80 </li></ul><ul><li>注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以 0 记。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  74. 74. SQL 内置函数 <ul><li>UID </li></ul><ul><li>UID 函数返回一个整数值。对于当前数据库用户来它是唯一的。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>UID </li></ul><ul><li>该函数没有参数 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL>SELECT UID FROM dual; </li></ul><ul><li> UID </li></ul><ul><li>------ </li></ul><ul><li> 5 </li></ul><ul><li>该数值来源于 V$SESSION 中的 USER# 列。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  75. 75. SQL 内置函数 <ul><li>UPPER </li></ul><ul><li>UPPER 函数间返回字符串的大写形式。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>UPPER ( string ) </li></ul><ul><li>其中: </li></ul><ul><li>string 任意 VARCHAR2 或 CHAR 型字符串 </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>UPPER (’ THIS IS a Test’ ) =‘THIS IS A TEST’ </li></ul>Oracle 8i 数据库管理 WinnerSoft
  76. 76. SQL 内置函数 <ul><li>USER </li></ul><ul><li>USER 返回当前用户名,没有参数。 </li></ul><ul><li>其具体的语法格式如下: </li></ul><ul><li>USER </li></ul><ul><li>下面是该函数的使用情况: </li></ul><ul><li>SQL>SELECT USER FROM dual; </li></ul><ul><li>USER </li></ul><ul><li>-------- </li></ul><ul><li>SYSTEM </li></ul><ul><li>当任一内嵌的函数或程序调用该函数时,该函数总返回该调用者的名字。 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×