• Oracle学习记录1


    1、current_date与sysdate区别

    在oracle中current_date与sysdate都是显示当前系统时间, 其结果基本相同,但是有三点区别:
    a. current_date返回的是当前会话时间,而sysdate返回的是服务器时间.
    b.current_date有时比sysdate快一秒,这可能是四舍五入的结果.
    c. 如果修改当前会话的时区,比如将中国的时区为东八区,修改为东九区,则current_date显示的时间为东九区时间, 根据东加西减的原则,current_date应该比sysdate快一小时.

    2、dual表

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录,功能类似中转站。
    select 999*999 from dual;

    3、Nextval用法

    在SQL Server 中,identity 属性可以自动增长,如
    create   table   a(a1   int   identity(1,1), a2   varchar(6));
    在Oracle 中,使用SEQUENCE(序列)可以达到目的,如
    create   table   a
    (
    a1   int   ,
    a2   varchar2(6)
    );
    create   SEQUENCE   seq_a     INCREMENT   BY   1;
    然后在Insert时:
    insert   into   a   values(seq_a.nextval, 'hello! '); --seq_a.nextval是该序列的下个值。

    4、Merge into

    通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,
    连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。
    这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。
    /*语法:
    MERGE [INTO [schema .] table [t_alias]
    USING [schema .] { table | view | subquery } [t_alias]
    ON ( condition )
    WHEN MATCHED THEN merge_update_clause
    WHEN NOT MATCHED THEN merge_insert_clause;
    */

    5、日期转换

    insert into table (col1,col2) values('value1',to_date('value2','yyyy-mm-dd hh24:mi:ss '))

    6、插入数据
    SELECT COUNT(1) INTO V_USER_ID FROM member WHERE EID = P_USER_ID;
    if V_USER_ID=0 then
      P_ID:=0;
      P_MSG:='The USER_ID cannot be found.';
      RETURN;
    end if;

     7、Oracle 调试存储过程
    grant debug connect session to tony; grant debug any procedure to tony;
    然后选中存储过程,点击右键,执行[编译以进行调试]。 可以添加断点,菜单 [运行]〉调试xxx。

  • 相关阅读:
    离线下载使用Google商店插件crx
    springboot thymeleaf 引入js
    如何保证系统重启,tomcat自动重启
    如何实现财务自由
    理财之道
    九大职场定律
    算法系列二:如何学习算法
    FastDFS结合Flask使用
    系统权限的实现
    正则表达式
  • 原文地址:https://www.cnblogs.com/windy2008/p/4645912.html
Copyright © 2020-2023  润新知