收藏 分享(赏)

oracle从入门到精通.pdf

上传人:weiwoduzun 文档编号:5397393 上传时间:2019-02-28 格式:PDF 页数:106 大小:664.30KB
下载 相关 举报
oracle从入门到精通.pdf_第1页
第1页 / 共106页
oracle从入门到精通.pdf_第2页
第2页 / 共106页
oracle从入门到精通.pdf_第3页
第3页 / 共106页
oracle从入门到精通.pdf_第4页
第4页 / 共106页
oracle从入门到精通.pdf_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、 Oracle 从入门到精通 一、SQL .8 1.1、基本概念: .8 1.2、数据库安全 : .8 1.3、基本的SQL SELECT 语句 .8 1.4、SELECT语句 .9 1、语法: .9 2、SQL语句说明: .9 3、数字和日期都可以使用数学运算符建立表达式。 .9 4、定义空(NULL)值 .9 5、别名 .9 6、spool +路径 .10 7、连接操作符: | .10 8、文本字符串 .10 9、DISTINCT .10 1.5、SQLPLUS 与 SQL 的关系 .10 1、SQLPLUS命令的功能: .10 2、查询 SQLPLUS 命令 .10 3、SQLPLUSW

2、 在 WINDOWS 下运行的分析器。 .10 4、SQLPLUS 命令: . 11 1.6、单行函数 .12 1、character字符类型函数: .12 2、number数字类型函数 .15 3、时间类型函数: (date) .15 1.7、嵌套函数: 21 1. 通用函数: .21 2. 条件表达式: .24 3. 从多表中显示数据: .25 1.8、用字函数产生的总计 .26 1.9、子查询: .28 2.0、替换变量: .29 1. 资源来自网络,仅供学习! Oracle 从入门到精通第 9 页,共 106 页6、spool +路径 保存命令(将显示保存) 7、连接操作符: | se

3、lect lastname | work in | department_id from tablename; select last_name | s salary is | salary 员工月薪 from employ ees; 注:在单引号中还要使用单引号的话,就必须使用两个单引号来实现一个单引号的功能。 8、文本字符串 *可以代表字符、数字或是日期。 *当代表字符或日期的时候用单引号括起来,数字不需要。 9、DISTINCT 在查询时默认显示所有的行,包括有重复值的行。 DISTINCT 消除重复行关键字,放在整查询列表的最前面。 作用范围:整个查询列表的组合。 消除重复行后会按字段

4、的特性,做升序排列。 (执行过程:先排序,再消除重复) select distinct department_id,job_id from employees; 1.5、SQLPLUS 与 SQL 的关系 SQL *是一种语言 *ANSI 标准 *关键字不能缩写 *用于操作数据库中的数据和表的定义 1、SQLPLUS命令的功能: *描述表的结构 *编辑 SQL 语句 2、查询 SQLPLUS 命令 help + 命令 3、SQLPLUSW 在 WINDOWS 下运行的分析器。 登陆ISQLPLUS (1)先到服务中启动 OracleOraH ome92HTTPServer (2)在浏览器中输入

5、:http:/wnj :7778/isqlplus URL(网页中的地址) 资源来自网络,仅供学习! Oracle 从入门到精通第 10 页,共 106 页4、SQLPLUS 命令: 4.1、与文件相关的命令: 4.1.1、 spool + 路径 . . spool off 4.1.2、save 把当前内存中的语句保存为文本文件。 4.1.3、run 或 / 运行当前内存中的语句 4.1.4、clear buffer(cl buff) 清空当前内存中的语句 4.1.5、 start 读取并执行 4.1.6、get 读取不执行 4.2编辑命令: z List 列出一条语句 *表示当前行 z Ch

6、ange 修改命令 原来c/jj/kk c/jjj/xxx z input 在当前行之后插入一行新的数据 z append 在当前行中插入新的东西 n 写数字显示对应行 z delete del + 回车 删除当前行 del 1 3 删除第一到第三行 z edit l,c,i,a,n,d,e z 查看当前用户 SHOW USER z 默认的日期格式:DD-MON-RR 日-月-年 z 日期可以进行比较; z 字符可以进行比较(以字母的 ASCLL 码比较) ; z IN(set)或NOT IN 匹配任何列表中的值; z LIKE 模糊匹配字符串值; z IS NULL 是否空值; z IS N

7、OT NULL 是否不为空; z BETWEEN 可以做数字、日期和字符的比较。 z 通配符 %、_ S_mith WHERE first_name like s/_%escape/; 解释这个符号后的下划线为正常的字符。如果不加,将被视为通配符作用的下划线。 _只能通配一个字符 主要用于通配固定位数的字符。例如查询月收入五位数以上的员工。五位就可以用_来查询。 资源来自网络,仅供学习! Oracle 从入门到精通第 11 页,共 106 页z 逻辑操作符(用在 WHERE 子句中) 1. AND 2. OR 3. NOT 先执行 NOT ,再执行 AND 最后执行 OR。 z ORDER B

8、Y ORDER BY 子句在 SELECT 语句的最后。 z ASC:升序 DESC:降序 z 空值作为无穷大来处理。 z rownum 显示行数量约束的关键字(在结果中可以做代理键使用) ; 可以按照查询列表中序号进行排序。 系统在用户写出查询列表的同时就赋予每个列名一个序号,升序赋予。 例: SELECT name,phone,adress from.; 1 2 3 1.6、单行函数 单行函数:对单行数据进行计算并返回一个值的函数。 *修改数据项 *接受参数返回一个值。 *对每行进行操作。 *每行返回一个结果。 *可以修改数据类型 *可以嵌套 1、character字符类型函数: z LO

9、WER()强制小写 z UPPER()强制大写 z INITCAP()每个单词首字母大写,可以用在 WHERE子句中。 z CONCAT( , )连接函数 z SUBSTR(string,a,b)返回 string 的一部分,a和 b 以字符为单位。 z SUBSTRB(string,a,b)返回 string的一部分,a和 b 是以字节为单位。 z SUBSTRC(string,a,b)返回 s tring的一部分,a和 b 是以UNICODE 完全字符为单位。 z SUBSTR2(string,a,b)返 回 string的一部分,a和 b 是以UCS2 代码点为单位。 z SUBSTR4

10、(string,a,b)返 回 string的一部分,a和 b 是以UCS4 代码点为单位。 以上函数都是返回 string 的一部分,从字符位置 A 开始,长为 B 个字符。如果 A 是0,那它就被认为是 1 (字符串的开始位置) 。 如果 A 是正数, 那么字符从左边开始数。 如果是负数, 则从STRING的末尾开始,从右边数。如果 B 不存在,那么缺省是整个字符串。如果 B 小于 1,将返回 NULL。如果 A 或B 使用了浮点数,那么该数值首先被节取成一个整数,返回类型与 STRING相同。 z LENGTH(string) z LENGTHB(string) z LENGTHC(st

11、ring) z LENGTH2(string) 资源来自网络,仅供学习! Oracle 从入门到精通第 12 页,共 106 页z LENGTH4(string) 以上函数返回 string 的长度。因为 CHAR 类型的值是填充空格的,所以如果 string 是 CHAR 数据类型,那么末尾的空格算在长度之内。如果 string 是NULL,函数返回NULL。 z INSTR(string1,string2,a,b) 返回string1中包含string2的位置。 a和b以字符为单位。 z INSTRB(string1,string2,a,b) 返回 string1 中包含 string2

12、的位置。a 和 b 是以字节为单位。 z INSTRC(string1,string2,a,b)返回 string1 中包含 string2 的位置。a 和 b 是以 UNIC ODE完全字符为单位。 z INSTR2(string1,string2,a,b) 返回 string1 中包含string2 的位置。a 和b 是以 UCS 2代码点为单位 z INSTR4(string1,string2,a,b) 返回string1中包含string2的位置a和b是以UCS4 代码点为单位。 以上函数返回 string1 中包含 string2 的位置。 从左边开始扫描 string1,起始位置是

13、 A。如果A 为负数那么从右边开始扫描。第 B 次出现的位置将被返回。A 和 B 缺省都为 1,即返回在 string1中第一次出现 string2 的位置。如果 string2 在 A 和 B 的规定下没有找到那么就返回 0。位置的计算是相对于 string1 的开始位置的,而不关 A 和B 的取值。 z LPAD(列名,数字,要补上的字符 )左补位 z RPAD(列名,数字, 要补上的字符 )右补位 z TRIM( child_str FROM parents_str )将连续子串(只能有一个字符)从主串的两边截取出来,区分大小写。默认为截取空格。 z LTRIM()左截取 z RTRIM

14、()右截取 z ascii(x)函数,返回X字符的十进制数,即 X的 ASCII 码值。 z chr(x)函数,返回ASCII 码为X 的字符。 z length(x)函数,求串 X的长度,与之相似的是 lengthb(x)函数,用在多字节字符中。 z replace(x,y,z)函数,返回值为将串 X 中的Y串用 Z 串替换后的结果字符串。若省略 Z 参数,则将串 X 中为 Y 串的地方删除。 z soundex(x)函数,返回串 X 的语音描述,这个描述由 4 个字符组成,说明串 X 的声音表示形式发音,有时在只知道一个名字的发音而不知道拼写情况下或许能用到。 例:select sound

15、ex (smith) from dual; 返回值为:S530. z translate(x,y,z)函数,返回将 X 串中每个字符按它在 Y 串中出现的位置翻译成 Z 串中相应位置的字符后的结果,相当与替换。 例:select translate(this is an example,my is,#$% z NLS 函数 除了 NCHR,这些函数都是以字符类型为参数返回字符类型值。 z CONVERT(string,dest_charset,source_charset) 将输入 string 转换为指定字符集 dest_charset。source_charset 是输入值的字符集如果它没

16、有被指定,则缺省为数据库字符集。输入值可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB和 NCLOB 类型。返回值为 VARCHAR2 类型。如果 dest_charset 中没有输入字符串中的一个字符,将会使用一个代替字符(由 dest_charset 定义) z NCHR(X) 返回数据库国家字符集中值为 X 的字符。NCHR(X) 等价于 CHR(x USING NCHAR_CS). z NLS_CHARSET_DECL_LEN(byte_width,charset) 返回一个 NCHAR 值的声明宽度(以字符为单位).byte_width 是该值以字节为单位

17、的长度 charset 是该值的字符集 ID。 资源来自网络,仅供学习! Oracle 从入门到精通第 13 页,共 106 页z NLS_CHARSET_ID(charset_name) 返回指定字符集 charset_name 的数字 ID。为 cha rset_name 指定“CHAR_CS”将返回数据库字符集的ID,为charset_name指定“NCHAR_C S”将返回数据库国家字符集的 ID。如果 charset_name 是一个无效字符集名,将返回 NULL。NLS_CHARSET_ID 和 NLS_CHARSET_NAME 是互为反函数。 z NLS_CHARSET_NAME

18、(charset_id) 返回指定字符集 ID charset_id 的名字。如果 charset_id 是 一个无效字符集 ID,将返回 NULL; z NLS_INITCAP(string,nlsparams) 以字符串中每个单词第一个字符大写而单词中其余字母小写的形式返回 string.nlsparams 指定了一个与该会话缺省的不同的排序次序。如果没有指定该参数,NLS_INITCAP 与 INITCAP 相同。nlsparams 应该采取下面的形式: NLS_SORT=sort,其中 sort 是一个语言排序序列。 z NLS_UPPER(string,nlsparams) 以大写形

19、式返回 string,不是字母的字符不受影响。如果没有指定 nlspar ams,NLS_UPPER 与 UPPER相同。 z NLS_LOWER 以小写形式返回 string,不是字母的字符不受影响,如果没有指定 nlspara ms,NLS_LOWER 与 LOWER相同。 z NLSSORT(string,nlsparams) 返回用于排序 string 的字符串字节。所有值都被转换为字节字符串,这样在不同数据库之间就保持了一致性。 如果没有指定 nlsparams,那么就会使用会话中缺省排序序列。 z TRANSLATE(string USING CHAR_CSINCHAR_CS) T

20、RANSLATE.USING 将输入 s tring 参数转换为数据库字符集(指定 CHAR_CS)或数据库国家字符集(指定 NCHAR_CS).string 可以是CHAR、VARCH AR2、NCHAR、NVARCHAR2 类型。如果指定 CHAR_ CS,返回类型为 VARCHAR2,如果指定 NCHAR_CS,返回类型为 NV ARCHAR2。TRANSLATE.USING是 CON VERT功能的子集。 如果输入值包含 UCS2 字符或反斜线符号要使用 UNSTR 函数。 例: SQL select translate(asd using NCHAR_CS) from dual;-数

21、据库国家字符 集 TRANSL - asd SQL select translate(asd using CHAR_CS) from dual;-数据库字符集 TRA - asd z UNSTR(s) 返回转换为数据库 UNICODE 字符集的字符串。s 可包含 escaped UCS2 代码点字符。它由一个反斜线符号加上十六进制代码点数字组成。因此,要在字符串中包含一个反斜线符号就必须使用双反斜线符号(). UNISTR与 TRANSLATE .USING 相似,差别是它仅能转换为 UNICODE ,而且可以包含 escaped 字符。 general /number /conversion

22、 /date 资源来自网络,仅供学习! Oracle 从入门到精通第 14 页,共 106 页多行函数:对多行数据(一组数据)进行计算并返回一个值的函数。 2、number 数字类型函数 z ABS(x) 函数,此函数用来返回一个数的绝对值。 z ACOS(x)函数,返回 X 的反余弦值。 X 范围从 1 到 -1,输入值从 0 到派,以弧度为单位。 z ASIN(x)函数,返回 X 的反正弦值。 X 范围从 1 到 -1,输入值从 -PI/2 到 PI/2,以弧度为单位。 z ATAN(x)函数,返回 X 的反正切值。输入值从 -PI/2 到 PI/2,以弧度为单位。 z BITAND(x,

23、y)函数 ,返回 X 和 Y 的与结果。 X 和 Y 必须为非负整数。注意没有 BITOR 函数,但是在 UTL_RAW 包中有用于 RAW 值的位操作符。 z CEIL(x)函数,用来返回大于或等于 X 的最小整数。 z COS(x)函数,返回 x 的余弦值。 x 是以弧度表示的角度。 z COSH(x)函数,返回 X 的双曲余弦。 z EXP(x)函数,与 power(x,y)函数类似,不过不用指明基数,返回 E 的 X 次幂。 E=2.71828183. z FLOOR(x)函数,用来返回小于或等于 X 的最大整数。 z LN(x)函数,返回 x 的自然对数。 x 必须大于 0。 z L

24、OG(x,y)函数,返回以 X 为底 Y 的对数。底必须是不为 0 和 1 的正数, Y 是任意正数。 z MOD(被除数,除数 )求余函数,如果除数为 0,则返回被除数。 z POWER(x,y)函数,返回 X 的 Y 次幂。底 X 和指数 Y 都不必是正整数,但如果 X 是负数的话,Y 必须是整数。 z ROUND(x,y)函数,返回舍入到小数点右边 Y 位的 X 值。 Y 缺省为 0,这将 X 舍入为最接近的整数。如果 Y 是负数,那么舍入到小数点左边相应的位上, Y 必须为整数。 z SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回 1,若为一个负数则返回-1,若为

25、 0 则仍返回 0,有点像把模拟量数字化的意思。 z SIN(x)函数,返回 X 的正弦。 x 是以弧度表示的角度。 z SINH(x)函数,返回 x 的双曲正弦。 z SQRT(x)函数,返回 x 的平方根, x 不能是负数。 z TAN(x)函数,返回 x 的正切。 x 是以弧度表示的角度。 z TANH(x)函数,返回 x 的双曲正切。 z TRUNC(x,y)截取值函数, Y 缺省为 0,这样 X 被截取成一个整数。如果 Y 为负数,那么截取到小数点左边相应位置 z WIDTH_BUCKET(x,min,max,num_buckets) 只能在 SQL 语句中使用。 使用 WIDTH_

26、BUCKET可以根据输入参数创建等长的段。 范围 MIN到 MAX被分为 num_buckets节,每节有相同的大小。返回 X 所在的那一节。如果 X 小于 MIN,将返回 0,如果 X 大于或等于MAX,将返回 num_buckets+1.MIN 和 MAX 都不能为 NULL, num_buckets 必须是一个正整数。如果 X 是 NULL,则返回 NULL。 3、时间类型函数: (date) 内部存储格式:世纪、年、月、日、小时、分钟、秒 默认格式是:DD-MON-RR。 SYSDATE 返回当前的系统时间。 SELECT SYSDATE FROM DUAL; 资源来自网络,仅供学习!

27、 Oracle 从入门到精通第 15 页,共 106 页3.1、对日期的数学运算 SELECT (SYSDATE-HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM; SYSDATE-HIRE_DATE:数字列 ADD_MONTHS(date,x)函数,返回加上X 月后的日期 DATE 的值。X 可以是任意整数。如果结果的月份中所包含的 日分量少于 DATE 的月份的日分量,则返回结果月份的最后一天。如果不小于,则结果与 DATE 的日分量相同。时间分量也相同。 CURRENT_DATE 以DATE 类型返回会话时区当前的日期。 这个函数同 SYSDATE 相似,

28、 除了SYSDATE不管当会话时区。 CURRENT_TIMESTAMP(precision) 以 TIM ESTAMP WITH TIMEZONE 类型返回会话时 区当前的日期。如果指定 precision,它指返回秒数的精度,缺省为 6。 DBTIMEZONE 返回数据库的时区。 LAST_DAY(日期) 指定日期所在月份的最后一天的日期, 这个函数可用来确定本月还有多少天。 LOCALTIMESTAMP(precision) 以 TIMESTAMP 类型返回会话时区的当前日期。如果指定precision,它指返回秒数的精度,缺省为 6 。 MONTHS_BETWEEN(离当前 比较近的日

29、期 date1,以前的日期) 两个日期之间相差的月数(以日作为最小单位来计算的) 。返回是相差的月数。如果 date1 和date2 的日分量相同,或者这两个日期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一个月 31 天计算。 NEW_TIME(d,zone1,zone2)函数,当时区 zone1 中的日期和时间是 D 的时候,返回时区 zone2 中的日期和时间。返回类型为 DATE。zone1和 zone2 是字符字符串,另外的时区可在 ORACLE9I 中 通过查询 V$TIMEZO NE_NAMES 得到。 NEXT_DAY (日期,星期几) 指定日

30、期后将要遇到的后七天的某一天的日期。 ROUND(日期, MONTH/YEAR ) 四舍五入得到新的日期。 保留位置是月和年 SESSIONTIMEZONE 返回当前会话的时区。 返回类型是一个时区偏移或时区片名的字符字符串。如果指 定格式,则与 ALTER SESSION 语句中的格式相同。 SYS_EXTRACT_UTC(datetime) 从提供的 DATETIME 中以UTC( Coordinated Universal Time)返回时间。DATETIME 必须包含一个时区。 SYSTIMESTAMP 以 TIMESTAMP WI TH TIMEZONE 返回当前的日期和时间。当在分

31、布式 SQL语句中使用的时候,返回本地数据库的日期和时间。 TRUNC(日期, MONTH/YEAR ) 截取 TZ_OFFSET(timezone) 以字符字符串返回提供的 ti mezone和 UTC 之间的偏移量。timezone可以被指定为时区名或+/-HH:HI格式表示的偏移量。也可使用 SE SSIONTIMEZONE 和DBTIMEZONE函数,返回格式为+/-HH:HI。 字符字符串 时区 AST 大西洋标准时 ADT 大西洋夏令时 BST 白令标准时 BDT 白令夏令时 CST 中央标准时 CDT 中央夏令时 EST 东部标准时 EDT 东部夏令时 GMT 格林威治平均时 H

32、ST 阿拉斯加夏威夷标准时 资源来自网络,仅供学习! Oracle 从入门到精通第 16 页,共 106 页HDT 阿拉斯加夏威夷夏令时 MST Mountain标准时 MDT Mountain夏令时 NST 纽芬兰标准时 PST 太平洋标准时 PDT 太平洋夏令时 YST YuKon标准时 YDT YuKon夏令时 3.2、日期和日期时间算术 运算 返回类型 结果 d1-d2 NUMBER 返回 D1 和 D2 之间相差的天数。该值是一个数值,其小数部分代表一天的几分之几。 dt1-dt2 INTERVAL 返回 DT1 和DT2 之间的时间间隔。 i1-i2 INTERVAL 返回 i1

33、和 i2 之间的差距。 d1+d2 N/A 非法仅能进行两个日期之间的相减。 dt1+dt2 N/A 非法仅能进行两个日期之间的相减。 i1+i2 INTERVAL 返回 i1 和 i2 的和。 d1+n DATE 在 D1 上加上N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。 d1-n DATE 从 D1 上减去N 天作为DATE 类型返回。N 可以是实数,它包含一天的几分之几。 dt1+i1 DATETIME 返回 DT1 和I1 的和。 dt1-i1 DATETIME 返回 DT1 和I1 之间的差距。 i1*n INTERVAL 返回 I1 的N次方。 i1/n

34、INTERVAL 返回 I1 除以N 的值。 表中注: D1和D2 指日期值; DT1 和DT2 指日期时间值; I1和 I2 指时间间隔值; N 指数字值。 资源来自网络,仅供学习! Oracle 从入门到精通第 17 页,共 106 页3.3、显示转换: (conversion) TO_NUMBER(char,format_model) 字符转换到数字类型 TO_DATE(char,format_model) 字符转换到日期类型 格式说明符:要与前边要转换的字符串的格式要相同才能转换(匹配问题:格式和位数) 。 TO_CHAR(date,format_model,nlsparams) 第二

35、个参数可以省略,不指定格式,按系统默认格式输出。 区分大小写。 使用 FM(在格式控制符前添加)符号可以去掉空格或是首位的零。 如果指定了 NLSPARAMS,则它控制返回字符串的月和日分量所使用的语言。格式为: NLS_DATA_LANGUAGE=language,language 指需要的语言。 例:select to_char(sysdate,FMyyyy-mm-dd) from dual; 5.格式控制符的类型: YYYY 四位的年 YEAR 年的拼写 MM 2 位数字的月 MONTH 月的全名 MON 月名的前三个字符 DY 星期名的前三个字符 DAY 星期名的全称 DD 2 位的天

36、 6.时间格式控制符: HH24:MI:SS AM HH12:MI:SS PM 7.通过“”来实现加入特殊字符的格式控制符。 SELECT TO_CHAR(SYSDATE,FMyyyy“年“mm“月“dd“日“) from dual; DDSPTH DD 是格式控制符。 TH 是序数词,将日期转换成英文的序数词拼写。 SP 是基数词,将日期转换成英文的基数词拼写。 TO_CHAR(NUM,format_model,nlsparams)转换数字 将 NUMBER 类型参数 NUM转换成 VARCHAR2 类型。如果指定 FORMAT,它会控制整个转换。 如果没有指定 FORMAT, 那么结果字符

37、串中将包含和 NUM 中有效位的个数相同的字符。 NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:NLS_NUMERIC_CH ARS= dg NLS_CURRENCY= string 。 d 和g 分别代表小数点和千分符,STRING 代表货币符号。 数字格式控制符: 9 代表一位数字(替换符。有,数字显示;没有。不什么都显示。 ) 0 代表一位数字(有数字,显示;没有,强制显示 0。 ) $ 美圆符号 L 本地货币 资源来自网络,仅供学习! Oracle 从入门到精通第 18 页,共 106 页. 小数点 , 千分符 B 当整数部分为 0 时,将整数部分填充为空格。 例:

38、B999 MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S PR 使用尖括号返回负数。正数将有前导或后继空格。999PR D 在指定位置返回一个小数点。两侧的 9 的个数指定了最大的位数。99D9 G 在指定位置返回千分符,G 可以在 FORMA T_model 中出现多次。9G999G9 C 在指定位置返回 ISO货币符号。C可以在 FORMAT_model 中出现多次。C99 L 在指定位置上返回本地货币符号。 L99 V 返回一个被乘以 10 的N 次方的数值,这里 N 是V

39、 后边9 的个数。99V99 EEEE 使用科学记数法返回该数值。9.99EEEE RM 使用大写的罗马数字表示返回该数值。 RM rm 使用小写的罗马数字表示返回该数值。 rm FM 返回不含前导和后继空格的数值。 FM99.09 格式控制符位数一定要大于或等于 NUMBER 的位数,不能小于。 用 RR 解决跨世纪问题: 小于 50 的认为是 1950-2050 大于 50 的认为是 1951-1999 数字和日期是不能相互转换的。 ASCIISTR(string) 返回只包含有效的 SQL字符和斜线的字符串。string 中的任何无效的字符将被转换为一个相当的数字,在之前加上斜线。 BI

40、N_TO_NUM(num,num.) 将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的 NUMS,每一个都必须是 0 或1。 例如 BIN_TO_NUM(1,0,1 ,1)将返回 11,因为 11 的二进制表示是 1011。当使用分组集合和 GROUP BY 子句时该函数很有用。 CHARTOROWID(x)函数, 将字符串转换成一个 ROWID 类型的值,注意格式必须采用 ROWID 数据类型格式,即“数据块号:行序号:数据文件号” 。 COMPOSE(string) 以相同字符集中完全规格化 Unicode 形式返回string.string 可以是CHAR、VARCHAR2、NCH

41、AR、NVARCHAR2、CLOB或 NCLOB 类型。 DECOMPOSE(string) 返回一个 Unicode 字符串。它是 string 的规范分解。str ing 可以是 CHAR、VARCHAR2、 NCHAR、NVARCHAR2、CLOB或 NCLOB 类型。 FROM_TZ(timestamp,timezone) 返回一个 TIMESTAMP WITH TIMEZONE 类型值。它将 TIMESTAMP(没有时区信息)和提供的 TIMEZONE组合在一起。 HEXTORAW(string) 将由 STRING 表示的二进制数值转换为一个 RAW数值。STRING 应该包含十六

42、进制值。STRING 中的每两个字符表示结果 RAW 中的一个字节。HEXTORAW 和RAWTOHEX 互为反函数。 NUMTODSINTERVAL(x,unit) 资源来自网络,仅供学习! Oracle 从入门到精通第 19 页,共 106 页将 X 转换为INTERVAL D AY TO SECOND 值,X 应该是一个数字。UNIT 是一个字符字符串(可以是 CHAR、VARCHAR2、NCHAR 或NVARCHAR2) ,且是DAY、HOUR、MINUT E、SECOND之一。unit是不区分大小写的,返回值的缺省精度为 9。 NUMTOYMINTERVAL(x,unit) 将 X

43、转换成INTERVAL Y EAR TO MONTH 值,X 应该是一个数字。UNIT 是一个字符字符串(可以是 CHAR、VARCHAR2、NCHAR 或NVARCHAR2) ,且是YEAR或MONTH之一。unit 是不区分大小写的,返回值的缺省精度为 9。 REFTOHEX(refvalue) 返回一 REF refvalue 的十六进制表示。 RAWTOHEX(rawvalue) 将 RAW 类型值 rawvalue转换为一个十六进制表示的字符串。rawvalue中的每个字节转换为一个双字符的字符串。 RAWTONHEX(rawvalue) 将 RAW 类型值 rawvalue转换为一

44、个十六进制表示的字符串。rawvalue中的每个字节转换为一个双字符的字符串。RAWTONHEX 返回值是 NVARC HAR2 类型而不是 VARCHAR2类型。 ROWIDTOCHAR(rowid)函数,将 RO WID类型值转换成字符串。与 CHARTOROWID 互为反函数。 ROWIDYONCHAR(rowid) 与ROW IDTOCHAR类似,返回类型是 NCHAR,而不是 CHAR。 TO_CLOB(string) 将 string 转换为 CLOB。string 可以是文字或另一个 LOB 列。如果参数包含 NCHAR 数据,它被转换为数据库字符集 TO_DSINTERVAL(

45、string,nlsparams) 将 string(可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为 INTERVAL DAY TO SECOND 类型。如果选定 nlsparams,则 nls params 只能包含小数点和千分位字符的 NLS_N UMERIC_CHARARCTERS表示。 TO_LOB(long_column) 将 long_column 转换成 LOB。这个函数用于将 L ONG和 LONG RAW分别转换为 CLOB 和LOB。 TO_MULTI_BYTE(string) 返回将所有单字节字符替换为等价的多字节字符的 STRING。该函数仅

46、当数据库字符集同时包含单字节和多字节字符时才使用。否则,STRING不会进行任何处理而被返回,与 TO_SINGLE_BYTE 互为反函数。 TO_NCHAR 和 TO_CHAR相似,结果是属于国家字符集而不是数据库字符集。 TO_NCLOB(string) 将 STRING 转换为 NCLOB。STRING 可以是文字或另一 LOB 列。 TO_SINGLE_BYTE(string) 返回将所有双字节字符替换为等价的单字节字符的 STRING。 。该函数仅当数据库字符集同时包含单字节和多字节字符时才使用。 否则, STRING不会进行任何处理而被返回, 与TO_MULTI_BYTE 互为反函

47、数。 TO_TIMESTAMP(string,format,nlsparams) 将其参数 CHAR 或VARCHAR2 类型str ing 转换成TIMESTAMP 类型。 TO_TIMESTAMP_TZ(string,format,nlsparams) 将其参数 CHAR 或VARCHAR2 类型string 转换成 T IMESTAMP WITH TIMEZONE 类型。 TO_YMINTERVAL(string) 将 string(可以是 CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为INTERVAL YEAR TO MO NTH 类型。 TO_YMINTERVAL

48、与TO_DSINTERVAL相似, 除了它不能使用NLS参数作为参数并返回YEAR TO MONTH时间间隔而不 DAY TO SECOND 时间间隔。 资源来自网络,仅供学习! Oracle 从入门到精通第 20 页,共 106 页TO_label(x,y)函数,按照格式 Y将字符串 X转换成 MLSLABEL 类型的一个值,若默认格式为Y,则按照默认格式进行转换。 dump(w,x,y,z)函数,用来返回字符串 EXPR的数据类型,内部的存储位置和字符长度。 dump(expr,return_datatype,start_position,length). return_datatype 是指定返回返回位置用什么方式表示,可以为 8、10、16、17,分别表示用八进制、十进制、十六进制和字符类型。 例: select dump(last_name,8,3,2) ,dump(last_name,10,3,2) , dump(last_name,16,3,2) ,dump(last_name,17,3,2) from employees where lower(last_name) = smith; greatest(x,y,.)函数,返回参数列表中的最大值。其参数的类型是由第一个参数决定

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报