随笔分类 - 数据库和数据访问
摘要:【问题描述】 近日,有项目组遇到了勒索软件攻击:勒索代码隐藏在Oracle PL/SQL Dev软件中(网上下载的破解版),里面的一个文件afterconnet.sql被黑客注入了病毒代码。这个代码会在用户连接数据库后立即执行,如果用户的账号拥有dba权限,它会在用户的数据库中创建多个存储过程和触发
阅读全文
摘要:1.表结构 2 查询结果 查部门ID=2的所有下级部门和本级 3 原理(摘自网上) 递归CTE最少包含两个查询(也被称为成员)。第一个查询为定点成员,定点成员只是一个返回有效表的查询,用于递归的基础或定位点。第二个查询被称为递归成员,使该查询称为递归成员的是对CTE名称的递归引用是触发。在逻辑上可以
阅读全文
摘要:oracle有个数据表现在已经有2500万条数据了,软件用到这个表的数据时就变的特别慢,所以准备把一个月以前的数据全部清除。 我的步骤是(下边操作都是在plsql中运行的) 1、首先 将这个月的数据导出到一个临时表中(这些数据是自己希望保留的) create table tempTable as s
阅读全文
摘要:重建索引来释放索引所占的表空间: "alter index F_HR_BENFIT_INX rebuild" 试了 一下确实可以,心得下回再写。 一、重建索引的前提 1、表上频繁发生update,delete操作; 2、表上发生了alter table ..move操作(move操作导致了rowid
阅读全文
摘要:一。查看oracle数据库是否为归档模式:Sql代码1.select name,log_mode from v$database; NAME LOG_MODE QUERY NOARCHIVELOG 2.使用ARCHIVE LOG LIST 命令 Database log mode No Archiv
阅读全文
摘要:1. 理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划。优化器统计信息包括: · 表的统计信息o 行数o Block数 o 行平均长度· 列的统计信息o 列中不同值的数量o 列中null的数量 o 数据
阅读全文
摘要:Oracle中rank() over, dense_rank(), row_number() 的区别 假设现在有一张学生表student,学生表中有姓名、分数、课程编号,现在我需要按照课程对学生的成绩进行排序。 select * from student 1. rank over ()可以实现对学生
阅读全文
摘要:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间 2011-12-29 16:24:34 select trunc(sysdate,'year') from dual; --截取到年(本年的第一天) 2011-1-
阅读全文
摘要:SQL UNION 操作符 SQL UNION 操作符合并两个或多个 SELECT 语句的结果。 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,
阅读全文
摘要:故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃; 问题分析:本问题在ORACLE系统管理中属于比较正常的一现象,产生问题的原因主要以下两点: 1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况; 2. 有较大事务没有收缩或者没有提交所导制; 解
阅读全文
摘要:在ORACLE数据库中如何查找那些字段里面包含中文的数据记录呢,有时候就是有这样的特殊需求,下面整理了一些判别字段中包含中文记录的几个方法 1:使用ASCIISTR函数判别 ASCIISTR函数说明: ASCIISTR返回字符的ASCII形式的字符串。非ASCII的字符被转化为\xxxx的形式。 使
阅读全文
摘要:1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接
阅读全文
摘要:本文列举了3种删除重复记录的方法,分别是rowid、group by和distinct,小伙伴们可以参考一下。 本文列举了3种删除重复记录的方法,分别是rowid、group by和distinct,小伙伴们可以参考一下。 比如现在有一人员表 (表名:peosons) 若想将姓名、身份证号、住址这三
阅读全文
摘要:我们在进行pl/sql编程时打交道最多的就是存储过程了。存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识。如:游标的处理,异常的处理,集合的选择等等 1.存储过程结构 1.1 第一个存储过程 create or replace proc
阅读全文
摘要:两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 2
阅读全文
摘要:-- 表 create table test (names varchar2(12), dates date, num int, dou double); -- 视图 create or replace view vi_test as select * from test; -- 同义词 creat
阅读全文
摘要:对于外连接,Oracle中可以使用“(+)”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面将配合实例一一介绍。1. LEFT OUTER JOIN:左外关联 SELECT e.last_name, e.department_id, d.department_name
阅读全文
摘要:1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table table_name_new as select * from table_name_old where
阅读全文
摘要:--检查数据库的等待事件 from v$session_waitwhere event not like 'SQL%' and event not like 'rdbms%' --找出系统中耗时的操作select b.username username,a.disk_reads reads, a.e
阅读全文
摘要:Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致); 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。un
阅读全文