/*+NOCACHE(TABLE)*/
当进行全表扫描时CACHE提示能够将表的检索块放置在缓沖区缓存中最近最少列表LRU的最近使用端
例如
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS
/*+APPEND*/
直接插入到表的最后可以提高速度
insert /*+append*/ into test select * from test
/*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入
insert /*+noappend*/ into test select * from test
ORACLE内部函数
如何得到字符串的第一个字符的ASCII值?
ASCII(CHAR)
SELECT ASCII(ABCDE) FROM DUAL
结果
如何得到数值N指定的字符?
CHR(N)
SELECT CHR() FROM DUAL
结果 D
如何连接两个字符串?
CONCAT(CHARCHAR)
SELECT CONCAT(ABCDEFGH) FROM DUAL
结果 ABCDEFGH
如何将列中的数值代替为字符串?
DECODE(CHARNCHARNCHAR)
SELECT DECODE(DAYSUNMON) FROM DUAL
INITCAP(CHAR)
将字符串CHAR的第一个字符为大写其余为小写
SELECT INITCAP(ABCDE) FROM DUAL
LENGTH(CHAR)
取一字符串CHAR的长度
SELECT LENGTH(ABCDE) FROM DUAL
LOWER(CHAR)
将字符串CHAR全部变为小写
SELECT LOWER(ABCDE) FROM DUAL
LPAD(CHARNCHAR)
用字符串CHAR包括的字符左填CHAR使其长度为N
SELECT LPAD(ABCDEFG) FROM DUAL
结果 ABCDEFG
LTRIM(CHARSET)
从字符串CHAR的左边移去字符串SET中的字符直到第一个不是SET中的字符为止
SELECT (CDEFGCD) FROM DUAL
结果 EFG
NLS_INITCAP(CHAR)
取字符CHAR的第一个字符大写其余字符为小写
SELECT NLS_INITCAP(ABCDE) FROM DUAL
NLS_LOWER(CHAR)
将字符串CHAR包括的字符全部小写
SELECT NLS_LOWER(AAAA) FROM DUAL
NLS_UPPER(CHAR)
将字符串CHAR包括的字符全部大写
SELECT NLS_UPPER(AAAA) FROM DUAL
REPLACE(CHARCHARCHAR)
用字符串CHAR代替每一个列值为CHAR的列其结果放在CHAR中
SELECT REPLACE(EMP_NO) FROM DUAL
RPAD(CHARNCHAR)
用字符串CHAR右填字符串CHAR使其长度为N
SELECT RPAD() FROM DUAL
RTRIM(CHARSET)
移去字符串CHAR右边的字符串SET中的字符直到最后一个不是SET中的字符为止
SELECT RTRIM(ABCDEDE) FROM DUAL
SUBSTR(CHARMN)
得到字符串CHAR从M处开始的N个字符 双字节字符一个汉字为一个字符的
SELECT SUBSTR(ABCDE) FROM DUAL
SUBSTRB(CHARMN)
得到字符串CHAR从M处开始的N个字符 双字节字符一个汉字为二个字符的
SELECT SUBSTRB(ABCDE) FROM DUAL
TRANSLATE(CHARCHARCHAR)
将CHAR中的CHAR的部分用CHAR代替
SELECT TRANSLATE(ABCDEFGHDEMN) FROM DUAL
UPPER(CHAR)
将字符串CHAR全部为大写
ADD_MONTHS(DN)
将N个月增加到D日期
SELECT ADD_MONTHS(SYSDATE) FROM DUAL
LAST_DAY(D)
得到包含D日期的月份的最后的一天的日期
SELECT LAST_DAY(SYSDATE) FROM DUAL
MONTH_BETWEEN(DD)
得到两个日期之间的月数
SELECT MONTH_BETWEEN(DD) FROM DUAL
NEXT_DAY(DCHAR)
得到比日期D晚的由CHAR命名的第一个周日的日期
SELECT NEXT_DAY(TO_DATE(//)SATDAY) FROM DUAL
ROUNT(DFMT)
得到按指定的模式FMT捨入到的最进的日期
SELECT ROUNT(//MONTH) FROM DUAL
SYSDATE
得到当前系统的日期和时间
SELECT SYSDATE FROM DUAL
TO_CHAR(DFMT)
将日期D转换为FMT的字符串
SELECT TO_CHAR(SYSDATEYYYY/MM/DD) FROM DUAL
TO_DATE(CHARFMT)
将字符串CHAR按FMT的格式转换为日期
SELECT TO_DATE(//YYYY/MM/DD) FROM DUAL
ABS(N)
得到N的绝对值
SELECT ABS() FROM DUAL
CEIL(N)
得到大于或等于N的最大整数
SELECT CEIL() FROM DUAL
COS(N)
得到N的余弦值
SELECT COS() FROM DUAL
SIN(N)
得到N的正弦值
SELECT SIN() FROM DUAL
COSH(N)
得到N的双曲余弦值
SELECT COSH() FROM DUAL
EXP(N)
得到N的E的N次幂
SELECT EXP() FROM DUAL
FLOOR(N)
得到小于或等于N的最小整数
SELECT FLOOR() FROM DUAL
LN(N)
得到N的自然对数
SELECT LN() FROM DUAL
LOG(MN)
得到以M为底N的对数
SELECT LOG() FROM DUAL
MOD(MN)
得到M除以N的余数
SELECT MOD() FROM DUAL
POWER(MN)
得到M的N幂
SELECT POWER() FROM DUAL
ROUND(NM)
将N捨入到小数点后M位
SELECT () FROM DUAL
SIGN(N)
当N<0时,得到-1;
当N>时得到
当N=时得到
SELECT SIGN() FROM DUAL
SINH(N)
得到N的双曲正弦值
SELECT SINH() FROM DUAL
SORT(N)
得到N的平方根N>=
SELECT SORT() FROM DUAL
TAN(N)
得到N的正切值
SELECT TAN() FROM DUAL
TANH(N)
得到N的双曲正切值
SELECT TANH() FROM DUAL
TRUNC(NM)
得到在M位截断的N的值
SELECT TRUNC() FROM DUAL
COUNT()
计算满足条件的记录数
SELECT COUNT(*) FROM TABLE WHERE COL=AAA
MAX()
对指定的列求最大值
SELECT MAX(COL) FROM TABLE
MIN()
对指定的列求最小值
SELECT MIN(COL) FROM TABLE
AVG()
对指定的列求平均值
SELECT AVG(COL) FROM TABLE
SUM()
计算列的和
SELECT SUM(COL) FROM DUAL
TO_NUMBER(CHAR)
将字符转换为数值
SELECT TO_NUMBER() FROM DUAL
CHARTOROWID(CHAR)
将包含外部语法ROWID的CHAR或VARCHAR数值转换为内部的二进制语法参数CHAR必须是包含外部语法的ROWID的字符的字符串
SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID(AAAAfZAABAAACpAAO)
NAME LEIXUE
CONVERT(CHARDEST_CHAR_SETSOURCE_CHAR_SET)
CONVERT将字符串CHAR中的字符从SOURCE_CHAR_SET标识的字符集转换为由DEST_CHAR_SET标识的字符集
SELECT CONVERT(GroBUSASCIIWEHP) CONVERSION FROM PUBS
CONVERSION Gross
HEXTORAW(CHAR)
将包含十六进制的CHAR转换为一个RAW数值
INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW(D) FROM TEST
RAWTOHEX(RAW)
将RAW数值转换为一个包含十六进制的CHAR值
SELECT RAWTOHEX(RAW_COLUMN) CONVERSION FROM BSEMPMS
CONVERSION D
ROWIDTOCHAR(ROWID)
将一个ROWID数值转换为VARCHAR数据类型
SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE %BRAAB%
TO_MULTI_BYTE(CHAR)
将CHAR中的单字节转换为等价的多字节字符