不可不知的Oracle常用技巧

不可不知的Oracle常用技巧

表复制

1.方法一:复制表结构和数据

create table temp_clientloginuser
as
select distinct userid from tbuserloginlog;

2.方法二:仅复制数据

-- 如果表结构一样
insert into mytable select * from yourtable;
-- 如果表结构不一样
insert into mytable(column1,column2...) select column1,column2 ... from yourtable;

3.方法三:仅复制表结构

create table tmp_tba
as 
select * from tmp_tbb where 1=2;

Oracle中日期函数

sysdate :  --系统日期 2013-2-28 15:55:33
to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')
to_date('2004-05-07 13:23:44','hh24')  --13
sysdate+1  --加一天
sysdate+1/24 --加1小时
sysdate+1/(24*60) --加1分钟
sysdate+1/(24*60*60) --加1秒钟
select to_date('2003-11-17','yyyy-mm-dd')+1 from dual;  --2003-11-18
add_months(sysdate,1)  --加一个月
add_months(sysdate,12) --加一年

删除一列

oracle 删除一列

alter table tb_user drop column  username;

常用视图

-- oracle 查询分区表的行数,使用情况等信息
SELECT * FROM user_tab_partitions
-- oralce查询用户作业
select * from user_jobs;

新建job

DECLARE
    v_job NUMBER;
BEGIN
    dbms_job.submit(v_job, 'pr_tbclient_stat(trunc(SYSDATE));', trunc(SYSDATE), 'trunc(sysdate)+1+3/24');--3点执行job
    COMMIT;
END;

Oracle 使用游标循环集合中的每一个元素

begin
  for v1 in (select bookid,bookname from tmp_2014415_book t) loop
    dbms_output.put_line(v1.bookid||'    '||v1.bookname);
  end loop;
end;
原文地址:https://www.cnblogs.com/fanyong/p/3523632.html