Your SlideShare is downloading. ×
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经典教程

658
views

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