oracle函数
----字符函数---- 字符函数主要用于修改字符列。这些函数接受字符输入,返回字符或数字值。Oracle 提供的一些字符函数如下。 1. CONCAT (char1, char2) 返回连接“char2”的“char1”。 2. INITCAP(string) 将每个单词的第一个字母大写“string”的字符转成大写。 3. LOWER (string) 将“string”转成小写。 4. LPAD(char1,n [,char2]) 返回“char1”,左起由“char2”中的字符补充到“n”个字符长。如果“char1”比“n”长,则函数返回“char1”的前“n”个字符。 5. LTRIM(string,trim_set) 从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 6. REPLACE(string, if, then) 用 0 或其他字符代替字符串中的字符。“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。 7. RPAD(char1, n [,char2]) 返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。如果 “char1”比“n” 长,则函数返回“char1”的前“n”个字符。 8. RTRIM(string,trim_set) 从右侧删除字符,此处“string”是数据库的列,或者是字面字符串,而“trim_set” 是我们要去掉的字符的集合。 9. SOUNDEX(char) 返回包含“char”的表意字符的字符串。它允许比较英语中拼写不同而发音类似的字。 10. SUBSTR(string, start [,count]) 返回“string”中截取的一部分。该命令截取“string”的一个子集,从“start”位置开始,持续“count”个字符。如果我们不指定“count”,则从“start”开始截取到“string”的尾部。 11. TRANSLATE(string, if, then) “if”中字符的位置,并检查“then”的相同位置,然后用该位置的字符替换 “string”中的字符。 12. UPPER(string) 返回大写的“string”。 13. ASCII(string) 该命令是“American Standard Code for Information Interchange”的缩写。它是使用数字表示可打印字符的基本规则。该函数返回 “string”中第一个(最左边)字符的 ASCII 值。 14. INSTR (string, set[, start[, occurrence] ] ) 该命令“string”中从“start”位置开始查找字符集合的位置,再查找“set”出现的第一次、第二次等等的“occurrence”(次数)。“start”的值也可以是负数,代表从字符串结尾开始向反方向搜索。该函数也用于数字和日期数据类型。 15. LENGTH(string) 返回“string”的长度值。
----数据和日期函数---- Oracle 在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。 Oracle 所提供的一些日期函数如下所示。 1. SYSDATE 返回当前的日期和时间。 2. ADD_MONTHS(d, no_of_month) 返回带有“no_of_month”的日期“d”。参数“no_of_month”可为任何整数。 3. LAST_DAY(month_day) 返回变量“month_day”中所指定月份的最后一天的日期。 4. MONTHS_BETWEEN(d1, d2) 返回日期 d1 和 d2 之间的月份数。如果 d1 晚于 d2,结果为正,否则返回负数。 5. NEXT_DAY(d, day_of_week) 返回由“day_of_week”命名的,在变量“d”指定的日期之后的第一个工作日的日期。参数“day_of_week”必须为该星期中的某一天。
----数字函数---- 数字函数接受数字输入,返回数字值作为输出。数字函数返回的值可精确至 38 个小数位数。Oracle 所提供的一些数字函数如下所示。 1. ABS(n) 返回 n 的绝对值。 2. CEIL(n) 返回大于等于 n 的最小整数。 3. FLOOR(n) 返回小于等于 n 的最大整数。 4. MOD(m,n) 返回 m 被 n 除后的余数。然而如果 n 为 0,则返回 m。 5. POWER(m, n) 返回 m 的 nth 乘方。底数 m 和指数 n 可为任何数,但如果 m 为负数,n 必须为整数。 6. ROUND(value, precision) Round 将“value”中给定的数值舍入到“precision”中指定的小数位。 7. SQRT(n) 返回 n 的平方根。n 值不能为负。 8. TRUNC(n[,m]) 返回截尾取整到 m 小数位的 n。
----转换函数---- 除了字符、数值和日期函数外,Oracle 还提供转换函数。转换函数将值从一种数据类型转换为另一种数据类型。Oracle 所提供的一些转换函数如下所示。 1.TO_CHAR(d [, fmt ]) 将 DATE 数据类型的“d”转换为 VARCHAR2 数据类型的值,格式由日期格式“fmt”所指定。如果省略了“fmt”,则将 d 按照默认的日期格式转化为 VARCHAR2 值。 2.TO_CHAR(n [, fmt ]) 使用可选的数字格式“fmt”将 NUMBER 数据类型的“n”转换成为 VARCHAR2 数据类型的值。如果省略了“fmt”,则将 n 转换为长度刚好为其有效数字位数的 VARCHAR2 值。 3.TO_NUMBER(char [,fmt ]) 将包含一个数字的 CHAR 或 VARCHAR2 数据类型的“char”转换为格式“fmt”所指定的格式,即 NUMBER 数据类型。 4.TO_DATA(char,fmt) 将CHAR或VARCHAR2值转换为一指定格式的日期类型的值。
----混合函数---- 以下是由 Oracle 提供的一些杂项函数 1.GREATEST(expr [,expr] ...) 返回值列表的最大值。对于字符数据比较的是 ASCII 值。 2.LEAST(expr [,expr] ...) 返回值列表的最小值。对于字符数据比较的是 ASCII 值。 3.NVL(value substitute) 如果值是 null 则替换值。 4.USER 以 VARCHAR2 数据类型返回当前 Oracle 用户。 5.VSIZE(expr) 返回 expr 的内部表达的字节数,如果 expr 是 null,则该函数返回 null。
6.行转列(oracle)
wm_concat()
----数字和日期格式模型----
以下给出可用于数字和日期的格式模型.
数字格式
格s式元素 | 说明 |
9 | 如果是正数,则返回指定数字个数的值,带前导空格 |
0 | 根据指定的位置,返回前导或者跟随的零。 |
$ | 返回带有前导美元符的值。 |
B | 当固定小数点数字的整数部分是零时,整数部分返回空格。 |
MI | 返回跟有负号的负数。返回跟有空格的正数。 |
S | 根据指定的位置,返回带前导或跟随负号的负数。 |
PR | 返回带括号的负数。 |
D或.(句号) | 在指定位置返回小数值。 |
G | 在指定位置返回逗号。 |
日期格式
格式元素 | 说明 |
AD 或 A.D. | 带有或不带有句号的 AD 标记 |
BC 或 B.C. | 带有或不带有句号的 BC 标记 |
D | 一周中的天 (1-7) |
DAY | 天的名称 (Sunday - Saturday) |
DD | 一月中的天 (1 - 31) |
DDD | 一年中的天 (1 - 366) |
DY | 天的缩写 (Sun - Sat) |
HH | 一天中的小时 (1 - 12) |
HH24 | 一天中的小时 (0 - 23) |
MI | 分钟 (0-59) |
MM | 月 (01-12) |
MON | 月名称的缩写 |
MONTH | 月的名称 |
SS | 秒 (0-59) |
YYYY | 4 个数字表示的年 |