`
lsh4894
  • 浏览: 105880 次
  • 性别: 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 SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    oracle的sql调优宝典

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

    Oracle四大宝典之一: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