Your SlideShare is downloading. ×
0
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Oracle经典教程
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Oracle经典教程

701

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
701
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. <ul><li>SQL 内置函数说明 </li></ul>Oracle 8i 数据库管理 WinnerSoft
  • 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. 数字格式元素 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 格式化 &lt; &gt; 中的负数 999pr PR 说明 示例 元素
  • 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. 日期格式元素 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. 日期格式元素 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. 日期格式元素 <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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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&gt;SELECT ROWID FORM dual; </li></ul><ul><li>ROWID </li></ul><ul><li>---------- </li></ul><ul><li>AAAADCAABAAAAVUAAA </li></ul><ul><li>SQL&gt;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. 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. 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. 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. 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. 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. 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. 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&gt;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. 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&gt;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. 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. 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. 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. 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. 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. 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&gt;CREATE TABLE xx (y raw(10)); Table created. SQL&gt;INSERT INTO xx VALUES(HEXTORAW(‘414243’)); 1 row created. AQL&gt;SELECT DUMP(y) FROM xx; DUMP(Y) ------------------------ Typ=23 Len=3:65,66,67 函数 HEXTORAW 应用情况举例
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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&gt; CREATE TABLE xx(y raw(10)); </li></ul><ul><li>Table created. </li></ul><ul><li>SQL&gt; INSERT INTO xx VALUES(HEXTORAW(‘414243’)); </li></ul><ul><li>1 row created. </li></ul><ul><li>SQL&gt; 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. 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. 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. 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. 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&gt;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. 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. 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. 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. 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. 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. 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. 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. 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. 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&gt;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. 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. 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. 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&gt; 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&gt; 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. 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. 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. 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. 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. 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. 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. 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. 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&gt;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. 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. 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&gt;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

×