本文共 7219 字,大约阅读时间需要 24 分钟。
PLSQL常用方法大全
作为一名PLSQL开发人员,熟悉并掌握各种函数和方法是日常工作的必备技能。以下是一些常用的PLSQL方法的示例和使用方法,希望对你有所帮助。
ASCII
返回与指定的字符对应的十进制数。 例子:select ascii('A') A, ascii('a') a, ascii('0') zero, ascii(' ') space from dual; 返回结果:
A a ZERO SPACE 65 97 48 32CHR
给出整数,返回对应的字符。 例子:select chr(54740) zhao, chr(65) chr65 from dual;
返回结果:
ZH C赵 A
CONCAT
连接两个字符串。 例子:select concat('010-','88888888')||'转23' as 高乾竞电话 from dual; 返回结果:
高乾竞电话 010-88888888转23INITCAP
返回字符串并将字符串的第一个字母变为大写。 例子:select initcap('smith') upp from dual; 返回结果: UPP
Smith
INSTR(C1,C2,I,J)
在一个字符串中搜索指定的字符,返回发现指定字符的位置。 例子:select instr('oracle traning','ra',1,2) instring from dual; 返回结果: INSTRING
9
LENGTH
返回字符串的长度。 例子:select name,length(name),addr,length(addr),sal,length(to_char(sal)) from dual;
返回结果:
NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) 高乾竞 3 北京市海锭区 6 9999.99 7LOWER
返回字符串并将所有字符小写。 例子:select lower('AaBbCcDd')AaBbCcDd from dual; 返回结果:
AABBCCDD aabbccddUPPER
返回字符串并将所有字符大写。 例子:select upper('AaBbCcDd') upper from dual; 返回结果: UPPER
AABBCCDD
RPAD 和 LPAD
RPAD:在列的右边粘贴字符;LPAD:在列的左边粘贴字符。 例子:select lpad(rpad('gao',10,'*'),17,'*') from dual; 返回结果: LPAD(RPAD('GAO',1
gao**)
不够字符则用*填满LTRIM 和 RTREM
LTRIM:删除左边出现的字符串;RTREM:删除右边出现的字符串。 例子:select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; 返回结果:
gao qian jingSUBSTR(string,start,count)
取子字符串,从start开始,取count个。 例子:select substr('13088888888',3,8) from dual; 返回结果: SUBSTR
08888888
REPLACE
替换字符串中的指定字符。 例子:select replace('he love you','he','i') from dual; 返回结果:
i love youSOUNDEX
返回与给定字符串读音相同的字符串。 例子:create table table1(xm varchar(8));insert into table1 values('weather');insert into table1 values('wether');insert into table1 values('gao');select xm from table1 where soundex(xm)=soundex('weather'); 返回结果: XM
weather
wetherTRIM
剪掉字符串的前后字符,默认为空格符。 例子:select trim(' hello ', ' ') from dual; 返回结果:
helloABS
返回指定值的绝对值。 例子:select abs(100), abs(-100) from dual;
返回结果:
ABS(100) ABS(-100)100 100
ACOS
返回反余弦值。 例子:select acos(-1) from dual;
返回结果: COS(-1)
3.1415927
ASIN
返回反正弦值。 例子:select asin(0.5) from dual;
返回结果: ASIN(0.5)
.52359878
ATAN
返回反正切值。 例子:select atan(1) from dual;
返回结果: ATAN(1)
.78539816
CEIL
返回大于或等于给定数字的最小整数。 例子:select ceil(3.1415927) from dual;
返回结果: CEIL(3.1415927)
4
COS
返回余弦值。 例子:select cos(-3.1415927) from dual;
返回结果: COS(-3.1415927)
-1
COSH
返回反余弦值。 例子:select cosh(20) from dual;
返回结果: COSH(20)
242582598
EXP
返回e的n次方根。 例子:select exp(2), exp(1) from dual;
返回结果:
EXP(2) EXP(1)7.3890561 2.7182818
FLOOR
对给定数字取整数。 例子:select floor(2345.67) from dual;
返回结果: FLOOR(2345.67)
2345
LN
返回对数值。 例子:select ln(1), ln(2), ln(2.7182818) from dual;
返回结果:
LN(1) LN(2) LN(2.7182818)0 .69314718 .99999999
LOG(n1,n2)
返回以n1为底n2的对数。 例子:select log(2,1), log(2,4) from dual;
返回结果:
LOG(2,1) LOG(2,4)0 2
MOD(n1,n2)
返回n1除以n2的余数。 例子:select mod(10,3), mod(3,3), mod(2,3) from dual;
返回结果:
MOD(10,3) MOD(3,3) MOD(2,3)1 0 2
POWER
返回n1的n2次方根。 例子:select power(2,10), power(3,3) from dual;
返回结果:
POWER(2,10) POWER(3,3)1024 27
ROUND 和 TRUNC
按照指定的精度进行舍入。 例子:select round(55.5), round(-55.4), trunc(55.5), trunc(-55.5) from dual;
返回结果:
ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)56 -55 55 -55
SIGN
返回数字n的符号。 例子:select sign(123), sign(-100), sign(0) from dual;
返回结果:
SIGN(123) SIGN(-100) SIGN(0)1 -1 0
SIN
返回正弦值。 例子:select sin(1.57079) from dual;
返回结果: SIN(1.57079)
1
TANH
返回双曲正切值。 例子:select tanh(20), tan(20) from dual;
返回结果:
TANH(20) TAN(20)1 2.2371609
TRUNC
按照指定的精度截取一个数。 例子:select trunc(124.1666,-2) trunc1, trunc(124.16666,2) from dual;
返回结果:
TRUNC1 TRUNC(124.16666,2)100 124.16
ADD_MONTHS
增加或减去月份。 例子:select to_char(add_months(to_date('199912','yyyymm'),2), 'yyyymm') from dual; 返回结果: TO_CHAR
200002
LAST_DAY
返回日期的最后一天。 例子:select last_day(sysdate) from dual;
返回结果: LAST_DAY(S)
31-5 月 -04
MONTHS_BETWEEN
给出两个日期之间的月份数。 例子:select months_between('19-12月-1999','19-3月-1999') mon_between from dual; 返回结果: MON_BETWEEN
9
NEW_TIME
转换时区。 例子:select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time, to_char(new_time(sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;
返回结果:
BJ_TIME LOS_ANGLES2004.05.09 11:05:32 2004.05.09 18:05:32
NEXT_DAY
计算下一个星期x的日期。 例子:select next_day('18-5月-2001','星期五') next_day from dual; 返回结果: NEXT_DAY
25-5 月 -01
SYSDATE
获取系统当前日期。 例子:select to_char(sysdate, 'dd-mm-yyyy day') from dual;
返回结果: TO_CHAR(SYSDATE,'
09-05-2004 星期日
TRUNC(date,fmt)
截断日期。 例子:select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh, to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;
返回结果:
HH HHMM2004.05.09 11:00:00 2004.05.09 11:17:00
CHARTOROWID
将字符转换为ROWID类型。 例子:select rowid, rowidtochar(rowid), ename from scott.emp;
返回结果:
ROWID ROWIDTOCHAR(ROWID) ENAMEAAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONESCONVERT(c,dset,sset)
将字符集转换为目标字符集。 例子:select convert('strutz','we8hp','f7dec') "conversion" from dual; 返回结果: conver
strutz
HEXTORAW 和 RAWTOHEXT
将十六进制字符串转换为二进制。ROWIDTOCHAR
将ROWID转换为字符类型。TO_CHAR(date,'format')
根据格式将日期转换为字符串。 例子:select to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss') from dual;
返回结果: TO_CHAR(SYSDATE,'
2004/05/09 21:14:41
TO_DATE(string,'format')
将字符串转换为日期。 例子:select to_date('高') from dual; 返回结果: TO
高
TO_MULTI_BYTE
将单字节字符转换为多字节字符。 例子:select to_multi_byte('高') from dual; 返回结果:
高TO_NUMBER
将字符转换为数字。 例子:select to_number('1999') year from dual; 返回结果: YEAR
1999
BFILENAME(dir,file)
指定外部二进制文件。 例子:insert into file_tb1 values(bfilename('lob_dir1','image1.gif')); CONVERT('x','desc','source')
将字段或变量从源字符集转换为目标字符集。EMPTY_BLOB 和 EMPTY_CLOB
初始化大数据类型字段。GREATEST
返回一组表达式中的最大值。 例子:select greatest('AA','AB','AC') from dual; 返回结果: GR
AC
LEAST
返回一组表达式中的最小值。 例子:select least('啊','安','天') from dual; 返回结果: LE
啊
UID
返回当前用户的唯一标识符。 例子:select username, user_id from dba_users where user_id=uid;
返回结果:
USERNAME USER_IDGAO 25
USER
返回当前用户的名字。 例子:select user from dual;
返回结果: USER
GAO
USEREVN
返回当前用户环境信息。 例子:select userenv('isdba') from dual; 返回结果: USEREN
FALSE
VSIZE
返回变量的大小(字节数)。 例子:select vsize(user), user from dual;
返回结果:
VSIZE(USER) USER6 SYSTEM
AVG(DISTINCT|ALL)
对数据求平均值。 例子:select avg(distinct sal) from gao.table3;
返回结果: AVG(DISTINCTSAL)
3333.33
MAX(DISTINCT|ALL)
对数据求最大值。 例子:select max(distinct sal) from scott.emp;
返回结果: MAX(DISTINCTSAL)
5000
MIN(DISTINCT|ALL)
对数据求最小值。 例子:select min(all sal) from gao.table3;
返回结果: MIN(ALLSAL)
1111.11
STDDEV(DISTINCT|ALL)
对数据求标准差。 例子:select stddev(sal) from scott.emp;
返回结果: STDDEV(SAL)
1182.5032
VARIANCE(DISTINCT|ALL)
对数据求协方差。 例子:select variance(sal) from scott.emp;
返回结果: VARIANCE(SAL)
1398313.9
GROUP BY
对分组统计进行。 例子:select deptno, count(*), sum(sal) from scott.emp group by deptno;
返回结果:
DEPTNO COUNT(*) SUM(SAL)10 1 3
20 1 5 30 1 6HAVING
对分组统计加限制条件。 例子:select deptno, count(*), sum(sal) from scott.emp group by deptno having count(*) >=5;
返回结果:
DEPTNO COUNT(*) SUM(SAL)20 1 5
30 1 6ORDER BY
对结果进行排序。 例子:select deptno, ename, sal from scott.emp order by deptno, sal desc;
返回结果:
DEPTNO ENAME SAL10 KING 5000
10 CLARK 2450 10 MILLER 1300 20 SCOTT 3000 20 FORD 3000 20 JONES 2975 20 ADAMS 1100 20 SMITH 800 30 BLAKE 2850 30 ALLEN 1600 30 TURNER 1500 30 WARD 1250 30 MARTIN 1250 30 JAMES 950希望这些方法能为你的PLSQL开发工作提供帮助!如果有任何问题或需要进一步的解释,请随时联系我。
发表评论
最新留言
关于作者