• 常用系统函数介绍


    51、bfilename(dir,file)

    指定一个外部二进制文件;

    SQL>insert into 表名 values(bfilename('文件路径','文件名'));

    52、convert('x','desc','source')

    将x字段或变量的源source转换为desc

    SQL> select sid,serial#,username,decode(command,

      2  0,'none',

      3  2,'insert',

      4  3,

      5  'select',

      6  6,'update',

      7  7,'delete',

      8  8,'drop',

      9  'other') cmd  from v$session where type!='background';

          SID   SERIAL# USERNAME                       CMD

    --------- --------- ------------------------------ ------

            1         1                                none

            2         1                                none

            3         1                                none

            4         1                                none

            5         1                                none

            6         1                                none

            7      1275                                none

            8      1275                                none

            9        20 GAO                            select

           10        40 GAO                            none

    52-1、decode函数类似于java的switch case分支语句

    SQL>select ename||decode(deptno,10,'在10号部门',20,'在20号部门',30,'在30号部门') from emp where ename='SCOTT' order by deptno;

    ENAME||DECODE(DEPTNO,10,'在10?

    ------------------------------

    SCOTT在20号部门

    53、dump(s,fmt,start,length)

    dump函数以fmt指定的内部数字格式返回一个varchar2类型的值;(主要用于查看类型格式长度)

    SQL>select dump(ename) from emp where ename='SCOTT';

    DUMP(ENAME)

    ---------------------------

    Typ=1 Len=5: 83,67,79,84,84

    54、empty_blob()和empty_clob()

    这两个函数都是用来对大数据类型字段进行初始化操作的函数

    55、greatest

    返回一组表达式中的最大值,即比较字符的编码大小;

    SQL>select greatest('AA','AB','AC') from dual;

    GREATEST('AA','AB','AC')

    ------------------------

    AC

    56、least

    返回一组表达式中最小值;

    SQL>select least('AA','AB','AC') from dual;

    LEAST('AA','AB','AC')

    ---------------------

    AA

    57、uid

    返回标识当前用户的唯一整数;(可以看到使用操作oracle用户的唯一uid编号)

    SQL>select uid from dual;

           UID

    ----------

            84

    58、user

    返回当前用户的名字

    SQL>select user from dual;等同于SQL>show user;

    USER

    ------------------------------

    SCOTT

    59、userenv

    返回当前用户环境的信息,opt可以是:

    ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZEISDBA

    查看当前用户是否是DBA如果是则返回true

    SQL>select userenv('isdba') from dual;

    USERENV('ISDBA')

    ----------------

    FALSE

    SQL> select userenv('isdba') from dual;

    USEREN

    ------

    TRUE

    SESSION

    返回会话标志

    SQL> select userenv('sessionid') from dual;

    USERENV('SESSIONID')

    --------------------

                     152

    ENTRYID

    返回会话人口标志

    SQL> select userenv('entryid') from dual;

    USERENV('ENTRYID')

    ------------------

                     0

    INSTANCE

    返回当前INSTANCE的标志

    SQL> select userenv('instance') from dual;

    USERENV('INSTANCE')

    -------------------

                      1

    LANGUAGE

    返回当前环境变量

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')

    ----------------------------------------------------

    SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    LANG

    返回当前环境的语言的缩写

    SQL> select userenv('lang') from dual;

    USERENV('LANG')

    ----------------------------------------------------

    ZHS

    TERMINAL

    返回用户的终端或机器的标志

    SQL> select userenv('terminal') from dual;

    USERENV('TERMINA

    ----------------

    GAO

    VSIZE(X)

    返回X的大小(字节)数

    SQL> select vsize(user),user from dual;

    VSIZE(USER) USER

    ----------- ------------------------------

              6 SYSTEM

    60、avg(distinct|all)

    all表示对所有的值求平均值,distinct只对不同的值求平均值

    SQL>select avg(distinct sal) from emp;

    AVG(DISTINCTSAL)

    ----------------

    2064.58333333333

    SQL> select avg(all sal) from emp;

    AVG(ALLSAL)

    -----------

    2073.214285

    61、max(distinct|all)

    求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次

    SQL>select max(distinct sal) from emp;

    MAX(DISTINCTSAL)

    ----------------

                5000

    62、min(distinct|all)

    求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次

    SQL>select min(all sal) from emp;

    MIN(ALLSAL)

    -----------

            800

    63、stddev(distinct|all)

    求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差

    SQL>select stddev(sal) from scott.emp;

    STDDEV(SAL)

    -----------

      1182.5032

    SQL>select stddev(distinct sal) from emp;

    STDDEV(DISTINCTSAL)

    -------------------

               1229.951

    64、variance(distinct|all)

    求协方差

    SQL>select variance(sal) from emp;

    VARIANCE(SAL)

    -------------

        1398313.9

    65、group by

    主要用来对一组数进行统计

    SQL> select deptno,count(*),sum(sal) from emp group by deptno;

    DEPTNO   COUNT(*)   SUM(SAL)

    ------ ---------- ----------

        30          6       9400

        20          5      10875

        10          3       8750

    66、having

    对分组统计再加限制条件

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

    DEPTNO   COUNT(*)   SUM(SAL)

    ------ ---------- ----------

        30          6       9400

    20          5      10875

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

    DEPTNO   COUNT(*)   SUM(SAL)

    ------ ---------- ----------

        30          6       9400

        20          5      10875

    67、order by

    用于对查询到的结果进行排序输出(升序排序asc,降序排序desc)

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

    DEPTNO ENAME            SAL

    ------ ---------- ---------

        10 KING         5000.00

        10 CLARK        2450.00

        10 MILLER       1300.00

        20 SCOTT        3000.00

        20 FORD         3000.00

        20 JONES        2975.00

        20 ADAMS        1100.00

        20 SMITH         800.00

        30 BLAKE        2850.00

        30 ALLEN        1600.00

        30 TURNER       1500.00

        30 MARTIN       1250.00

        30 WARD         1250.00

    30 JAMES         950.00

    sql函数的使用--系统函数

    sys_context

    1、terminal:当前会话客户所对应的终端标识符;

    2、lanuage:语言;

    3、db_name:当前数据库名称;

    4、nls_date_format:当前会话客户所对应的日期格式;

    5、session_user:当前会话客户所对应的数据库用户名;

    6、current_schema:当前会话客户所对应的默认方案名;

    7、host:返回数据库所在主机的名称;

    通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库?

    select sys_context('userenv','db_name') "数据库名称",sys_context('userenv','language') "语言" from dual;

    数据库名称                   语言

    ------------------------     -----------------------------------

    orcl                         SIMPLIFIED CHINESE_CHINA.ZHS16GBK

  • 相关阅读:
    事务的手动创建和提交
    计数器AtomicInteger
    多线程方法执行等待
    【javascript动画系列之网页白板】javascript实现的白板(兼容ff,ie,chrome,……)
    ie6,7下js动态加载图片不显示错误
    php中遇到include_path='.;C:\php5\pear'的错误
    linux下php扩展curl的安装
    【转】Linux操作系统文件系统基础知识详解
    【javascript动画之圆形运动】环绕鼠标运动作小球(兼容ie,ff,chrome,……)
    as(ActionScript)拖动实现
  • 原文地址:https://www.cnblogs.com/roger112/p/7717509.html
Copyright © 2020-2023  润新知