`
lsh4894
  • 浏览: 105156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle SQL葵花宝典(续写中)

阅读更多
 
查询某列重复的数据
select * from Flyz_People where People_Name in (select   People_Name from   Flyz_People group by   People_Name having count (People_Name) > 1)
删除用户下面的所有表结构:
 
select   'Drop   table   '||table_name||';'     
        from   all_tables   
        where   owner='SF_UNITE';  
 
2011-07-12: 修改多表结构中相同字段的字段
 
 
 
 
CREATE OR REPLACE procedure ABLEMMS.update_table
   is
   v_length NUMBER;
   sqls varchar2(4000);
     table_name varchar2(4000);
    b varchar2(4000);
      c varchar2(4000);
     d int;
   
   cursor cur is select u.table_name, t.DATA_TYPE,t.COLUMN_NAME, t.DATA_LENGTH from user_tables u, user_tab_columns t where 
       u.table_name = t.TABLE_NAME  and t.TABLE_NAME = 'QF_KEYWORDS';
   begin
       open cur;
       LOOP
     FETCH cur INTO table_name,b,c,d;
  EXIT WHEN cur%NOTFOUND;
           if b = 'VARCHAR2' THEN
                   v_length := d+10;             
                  sqls :='alter table ' || table_name ||' modify ' || c || ' VARCHAR2('||v_length||')';
                   EXECUTE IMMEDIATE  sqls; 
           END IF;    
       END LOOP;
    close cur;
    
end update_table;
 
2011-04-25: 删除用户下所有的表结构
create or replace
PROCEDURE "del_table" 
  IS
cursor cur1 is select table_name from user_tables;
begin
  for cur2 in cur1 loop
    execute immediate 'drop table '||cur2.table_name||'cascade constraints';
  end loop;
end;
2011-04-14:oracle查询被锁死的表以及解锁
 
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
 
查询SID在执行的sql:
select sql_text from v$session a,v$sqltext_with_newlines b
  where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
  and a.sid in (&sid,&serial) order by piece;
 
 

alter system kill session '&sid,&SERIAL';
 
 
 
 
 
2011-03-25:oralce分页查询SQL语句
select * from ABLEPHOTO where rowid in(select rid from (select rownum rn,rid from(select rowid rid,ATIME from 
ABLEPHOTO order by ATIME desc) where rownum<50) where rn>30) order by ATIME desc 
 
ATIME 是表ABLEPHOTO 中的字段也是根据这个字段排序的
1、去掉重复记录 保留一条
DELETE FROM A_TEST 
WHERE UNAME IN (  SELECT UNAME 
                      FROM A_TEST 
                     GROUP BY UNAME 
                    HAVING COUNT(UNAME) > 1    ) 
   AND ROWID NOT IN ( SELECT MIN(ROWID) 
                       FROM A_TEST 
                      GROUP BY UNAME 
                     HAVING COUNT(UNAME) > 1   )
 
 2、替换字段根据指定的字符
update QF_KEYWORDS set KEYWORD=REPLACE(KEYWORD, ',' , '')
 
3、oracle job时间
 
 
 
 
每天运行一次 'SYSDATE + 1'
每小时运行一次 'SYSDATE + 1/24'
每10分钟运行一次 'SYSDATE + 10/(60*24)'
每30秒运行一次 'SYSDATE + 30/(60*24*60)'
每隔一星期运行一次 'SYSDATE + 7'
 
 
每天午夜12点 'TRUNC(SYSDATE + 1)'
每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
 
每天凌晨0点执行
TRUNC(sysdate+1)
每天凌晨1点执行
TRUNC(sysdate+1)+1/24
每天早上8点30分执行
TRUNC(SYSDATE+1)+(8*60+30)/(24*60)
 
3、每周定时执行
例如:
每周一凌晨2点执行
TRUNC(next_day(sysdate,1))+2/24
TRUNC(next_day(sysdate,'星期一'))+2/24
每周二中午12点执行
TRUNC(next_day(sysdate,2))+12/24
TRUNC(next_day(sysdate,'星期二'))+12/24
 
4、每月定时执行
例如:
每月1日凌晨0点执行
TRUNC(LAST_DAY(SYSDATE)+1)
每月1日凌晨1点执行
TRUNC(LAST_DAY(SYSDATE)+1)+1/24
 
5、每季度定时执行
每季度的第一天凌晨0点执行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')
每季度的第一天凌晨2点执行
TRUNC(ADD_MONTHS(SYSDATE,3),'q')+2/24
每季度的最后一天的晚上11点执行
TRUNC(ADD_MONTHS(SYSDATE+ 2/24,3),'q')-1/24
 
6、每半年定时执行
例如:
每年7月1日和1月1日凌晨1点执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),6)+1/24
 
7、每年定时执行
例如:
每年1月1日凌晨2点执行
ADD_MONTHS(TRUNC(sysdate,'yyyy'),12)+2/24
根据规律来算,其实就非常简单了。 
 
8、每月的第一天跟最后一天
oracle 获取 每月第一天 最后一天

博客分类: oracle
Oracle 
方法一: 
    select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天",to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最后一天" from dual; 

方法二: 
    select trunc(sysdate, 'MONTH') 本月第一天,to_date(to_char(last_day(sysdate),'YYYY-MM-DD'),'YYYY-MM-DD') 本月最后一天 from dual; 

方法三: 
    select trunc(sysdate, 'MONTH') 本月第一天,to_char(last_day(sysdate), 'YYYY-MM-DD') 本月最后一天 from dual;
4、oracle查询表名:
 
select table_name from all_tables t where table_name like '%SEND%'
当库中的表中太多太多的时候,可以查询所有库中的表名
 select table_name from user_tables
查询用户下面的表
 
 
 
5、创建索引:
CREATE INDEX "IPIQXT"."TZHS10_SUBMIT" ON "IPIQXT"."TZHS10_SUBMIT"
  (
    "ID"
  )
  PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTE STATISTICS STORAGE
  (
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
  )
  TABLESPACE "MBOP" ;
 
6、创建job:
 
--两种方法 三十分钟执行一次存储过程DAYBAKDATA
 
1、VARIABLE jobno number;
BEGIN
   DBMS_JOB.SUBMIT(:jobno, 'DAYBAKDATA;', sysdate , 'SYSDATE+30/1440');
   commit;
END;
 
2、DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X
   ,what      => 'DAYBAKDATA;'
   ,next_date => SYSDATE+30/1440
   ,interval  => 'SYSDATE+30/1440'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
7、打印
 
dbms_output.put_line('归档了一条彩信发送状态');
 
8、创建索引:
CREATE INDEX "MY_SUBMIT4" ON "MY_SUBMIT4"
  (
    "ID"
  )
 
 
10、创建触发器
create or replace
TRIGGER bjcbsend
   AFTER INSERT ON a_SUBMIT
   FOR EACH ROW
DECLARE
BEGIN
 
 
   --sql操作 以上是插入数据时候的触发器 以下注释的是如果你想要修改某个字段的时候的触发器 只需把INSERT改成UPDATE  然后加上以下代码
   --  if updating('字段') and :NEW.字段> '100'  then
   --       执行sql操作
   -- end if;
   --END;
 
9、创建序列
CREATE SEQUENCE "IPIQXT"."SEQ_ABLEPHOTO"
MINVALUE 1 MAXVALUE 9999999999999999999999999999
INCREMENT BY 1 START WITH 20000 CACHE 20 NOORDER NOCYCLE ;
 
 10、创建函数
--从表T_a 中取出phone 条件是AREANO =传入的参数areano1
create or replace
function vphone (areano1 in varchar2)
return varchar2 
is
  phone1 varchar2(20);
  begin
      select phone into phone1 from T_a where rownum=1 and AREANO = areano1 and flag 
   return(phone1);
end ; 

 

1
2
分享到:
评论

相关推荐

    Oracle相关SQL葵花宝典

    书中还将深入探讨PL/SQL中的复合数据类型,如记录和表类型,以及如何在PL/SQL中进行错误处理和调试。 本书还特别关注性能优化,包括索引策略、查询优化器的工作原理、Explain Plan的使用,以及如何通过调整SQL语句...

    oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典

    oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典oracle_葵花宝典

    oracle的sql调优宝典

    ### Oracle的SQL调优宝典 #### 概述 Oracle数据库是业界领先的数据库管理系统之一,在企业级应用中占据着举足轻重的地位。随着数据量的不断增长以及业务复杂度的提升,对Oracle数据库的性能优化变得尤为重要。SQL...

    Oracle四大宝典之一:Oracle Sql基础 中文版

    第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    Oracle Sql语句转换成Mysql Sql语句

    在使用这个工具时,开发者需要确保源代码中的SQL语句是标准的Oracle SQL格式,避免使用特定Oracle数据库的特性,以提高转换的成功率。同时,转换后还需要对生成的MySQL SQL进行测试,确保在目标数据库环境中能正常...

    ORACLE葵花宝典

    ### ORACLE葵花宝典:PGA与SGA详解及优化策略 #### 一、PGA与SGA的区别 在深入探讨ORACLE的PGA(Program Global Area)和SGA(System Global Area)之前,我们首先需要理解这两者的基本概念以及它们各自在Oracle数据库...

    《精通Oracle SQL 第2版》PDF版本下载.txt

    3. **函数与表达式**: 介绍了Oracle SQL中的内置函数和表达式的使用方法。 4. **数据控制**: 讲解了如何使用GRANT和REVOKE语句来控制对数据库对象的访问权限。 5. **索引与优化**: 分析了索引的工作原理及其在提高...

    Oracle SQL高级编程

    但是,从标题我们可以推测该文档可能是关于如何使用Oracle数据库中的SQL语言进行高级编程。Oracle数据库是一个功能强大的关系数据库管理系统(RDBMS),支持复杂的数据处理和企业级的应用程序。Oracle SQL高级编程...

    Oracle Sql基础(beginning oracle sql中文版)

    在Oracle SQL中,可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN来合并来自两个或更多表的数据。JOIN操作基于不同表之间的关联列。 八、子查询 子查询是在SELECT、FROM或WHERE子句中嵌套的查询,用于返回...

    ORACLE SQL性能优化系列

    下面我们将详细介绍 ORACLE SQL 性能优化系列中的一些重要知识点。 一、访问表的方式 ORACLE 采用两种访问表中记录的方式:全表扫描和通过 ROWID 访问表。 1. 全表扫描 全表扫描就是顺序地访问表中每条记录。...

    Oracle SQL 官方文档

    此外,还涵盖了PL/SQL块的结构、子程序(函数和过程)以及如何在PL/SQL中与数据库进行交互。 2. **PL/SQL程序包与类型**:程序包在PL/SQL中是组织和重用代码的一种方式,可以包含过程、函数、变量和其他声明。这个...

    Oracle葵花宝典

    一个简单明了的oracle TXT文件,对学习Oracle学习非常有帮助

    Oracle 面试葵花宝典

    Oracle数据库是企业级关系型数据库管理系统中的重要角色,其面试涉及的内容广泛且深入。本篇文章将根据提供的课程笔记,解析Oracle面试中常见的知识点,帮助读者理解并掌握Oracle的基础操作和核心概念。 首先,我们...

    Oracle SQL Developer 使用说明

    Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它为数据库管理员(DBA)、开发者以及数据分析师提供了全面的功能,以高效地管理和操作Oracle数据库。本文档将深入讲解Oracle SQL Developer的...

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    OracleSQLDeveloper

    Oracle SQL Developer是Oracle生态系统中不可或缺的一部分,尤其对于那些需要频繁与Oracle数据库交互的开发者和DBA来说,它提供了一站式的解决方案,提高了工作效率并简化了数据库管理工作。无论你是初学者还是经验...

    oracle四大宝典之1:Oracle Sql基础

    `SELECT`语句是SQL中最常用的命令,用于从数据库中检索信息。基础用法如`SELECT * FROM Employees;`会返回Employees表中的所有记录。通过`WHERE`子句可以添加条件,如`SELECT * FROM Employees WHERE ID = 1;`则只...

    精通 ORACLE SQL高级编程 学习笔记

    精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先,确保你拥有正确的工具。在这个案例中,你需要MySQL 5.6.37、Oracle 11g以及Oracle SQL Developer...

Global site tag (gtag.js) - Google Analytics