PLSQL_Oracle PLSQL内置函数大全(概念)
发布日期:2025-05-05 19:16:29 浏览次数:4 分类:精选文章

本文共 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 32

  • CHR

    给出整数,返回对应的字符。
    例子:

    select chr(54740) zhao, chr(65) chr65 from dual;

    返回结果:

    ZH C


    赵 A

  • CONCAT

    连接两个字符串。
    例子:

    select concat('010-','88888888')||'转23' as 高乾竞电话 from dual;

    返回结果:

    高乾竞电话
    010-88888888转23

  • INITCAP

    返回字符串并将字符串的第一个字母变为大写。
    例子:

    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 7

  • LOWER

    返回字符串并将所有字符小写。
    例子:

    select lower('AaBbCcDd')AaBbCcDd from dual;

    返回结果:

    AABBCCDD
    aabbccdd

  • UPPER

    返回字符串并将所有字符大写。
    例子:

    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 jing

  • SUBSTR(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 you

  • SOUNDEX

    返回与给定字符串读音相同的字符串。
    例子:

    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

    wether

  • TRIM

    剪掉字符串的前后字符,默认为空格符。
    例子:

    select trim('  hello  ', ' ') from dual;

    返回结果:

    hello

  • ABS

    返回指定值的绝对值。
    例子:

    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_ANGLES


    2004.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 HHMM


    2004.05.09 11:00:00 2004.05.09 11:17:00

  • CHARTOROWID

    将字符转换为ROWID类型。
    例子:

    select rowid, rowidtochar(rowid), ename from scott.emp;

    返回结果:

    ROWID ROWIDTOCHAR(ROWID) ENAME


    AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH

    AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
    AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
    AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES

  • CONVERT(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_ID


    GAO 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) USER


    6 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 6

  • HAVING

    对分组统计加限制条件。
    例子:

    select deptno, count(*), sum(sal) from scott.emp group by deptno having count(*) >=5;

    返回结果:

    DEPTNO COUNT(*) SUM(SAL)


    20 1 5

    30 1 6

  • ORDER BY

    对结果进行排序。
    例子:

    select deptno, ename, sal from scott.emp order by deptno, sal desc;

    返回结果:

    DEPTNO ENAME SAL


    10 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开发工作提供帮助!如果有任何问题或需要进一步的解释,请随时联系我。

    上一篇:PLSQL_案例优化系列_体验逻辑结构如何影响SQL优化(案例3)
    下一篇:plsql 安装后database下拉没有东西

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2026年06月06日 03时58分02秒