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。

 

转载于:https://www.cnblogs.com/windy2008/p/4645912.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值