
Oracle
yuer888
爱好旅游!
展开
-
Oracle数据库备份与恢复的三种方法
Oracle数据库备份与恢复的三种方法 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算 机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏, 这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数 据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7 为例,来讲述一下数据库的备份和恢复。ORAC转载 2006-12-21 15:01:00 · 879 阅读 · 0 评论 -
oracle imp exp几点应用技巧
第一部分:查看oracle中的imp,exp命令: imp help=y exp help=y1. 导出表数据: 文件名以backup_yyMMddHHmm.dmp 表示 dateString=`date +%y%m%d%H%M` #echo $dateString su - oracle -c "exp userid/password tables=原创 2007-03-21 16:02:00 · 2453 阅读 · 1 评论 -
得到第十天过生日的人名单
数据库里面有一张人员表,记录了人员的出生日期.我可以通过下列语句得到从今天算起,第十天过生日的人员清单.比如今天是2007.1.18我想得到2007.1.28过生日人的名单,其中 birthday为出生日期字段!select * from tablewhere birthday = to_date(to_char(birthday,yyyy)||to_char(sysdate+10,原创 2007-01-18 15:56:00 · 955 阅读 · 0 评论 -
SQL语句中关于in中是变量的一则应用
如果一个SQL语句中select a,b,c from table_name where a in(2,3,4,5) ;如果a是数值型,且2,3,4,5是变化的时候,可以用两种方法来解决这个问题:第一种方法:如果2,3,4,5是固定的个数,比如有四个,可以定义四个变量,如果当其中只有两个变量的话,则把其余的两个变量设置为可能存在的值。第二种方法:可以直接定义个字串,把2 3 4 5原创 2007-02-11 18:25:00 · 5967 阅读 · 0 评论 -
Oracle中几个关于日期方面的SQL实例
№1:取得当前日期是本月的第几周SQL> select to_char(sysdate,YYYYMMDD W HH24:MI:SS) from dual; TO_CHAR(SYSDATE,YY ------------------- 20030327 4 18:16:09 SQL> select to原创 2007-01-06 13:57:00 · 1140 阅读 · 0 评论 -
一个用来生成流水号的存储过程
我们经常需要用一个流水号来唯一表示一条数据,我们有时采用队列来自动生成一个唯一的流水号,但是采用队列经常不能满足我们的需求,比如说,这个队列只能设定一个最小值,最大值,然后进行累加,不能将产生这个流水号的日期包括今这个流水号中;一种类型就要新建一个队列等。下面这个存储过程可以产生一个流水号,它的格式是当前日期(格式YYYYMMDD)+6位的流水号数字,不同的类型只要给出一个不同的类型名称就可以了。转载 2006-12-26 09:42:00 · 2525 阅读 · 1 评论 -
字符串分拆函数
在Oracle中,如果一个包含分隔符的字符串(比如说“55*62*77”,这个字符串是用*号做分隔符,可以拆分成三个数“55”,“62”和“77”),要将它们拆分出来比较麻烦,下面这个存储过程就是为了方便对字符串的分拆而写的。CREATE OR REPLACE FUNCTION GetParamStr(--字符串分拆函数 i_SrcStr VARCHAR2, -- 包含参数的字符转载 2006-12-26 09:13:00 · 1738 阅读 · 0 评论 -
如何将数据库中被锁表解锁
我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:SELECT sn.username, m.SID,sn.SE转载 2006-12-26 09:00:00 · 1155 阅读 · 0 评论 -
UNION 和UNION ALL 的区别
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如: select * from gc_dfys union select * fr转载 2006-12-26 08:50:00 · 850 阅读 · 0 评论 -
oracle中如何删除重复数据
我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) from 表转载 2006-12-26 08:46:00 · 744 阅读 · 0 评论 -
Orcle中树查询的使用分析
[表结构]部门表建表语句如下:其中ID是主键CREATE TABLE XTHIS."DEPT_LIST" ("ID" NUMBER(18,0) NOT NULL, "SUPERIOR_ID" NUMBER(18,0), "CODE" VARCHAR2(10), "DEPT_NAME" VARCHAR2(20), "SCODE" VARCHAR2(5), "POSITION" VARCHAR2(50原创 2006-12-27 17:24:00 · 1318 阅读 · 0 评论 -
Oracle常用的SQL语句
①找到表中所有数值列为空的项目可以这么写: select * from table_abc where nvl(id,-1)=-1;以上id为数值列,且数值中永远不能有-1的记录.②查询出表中的前10条记录SQL可以这样写select * from table_abc where rownum③得到上一个月的今天的日期,select add_months(sysdate, -1) from dua原创 2006-12-26 08:28:00 · 875 阅读 · 0 评论 -
由于查询语句中日期的格式引起的问题
我这边有一个系统,在一个环境下运行完全正常,但迁到另外一个环境后,其中一个查询功能就莫名其妙的出现了问题,我通过检查,发现有一个很复杂的查询语句,在一个数据库环境下查询完全正常,在另外一个环境下查询就出问题了,报的错误是字符串的格式不对。我首先就怀疑是数据库环境的问题,但检查发现,两边的数据库环境都是oracle817。其次我又怀疑是由于数据库中的数据引起的问题,后来检查发现数据没有问题。这样我就转载 2006-12-26 08:56:00 · 993 阅读 · 0 评论 -
Oracle to_date的一点剖析
晚上在回答chinaunix上的一个题目。 这个题目在我们的开发过程中很经常遇见。 在此简单记录一下: 也就是to_date为什么有时候会报错呢? http://bbs.chinaunix.net/viewthread.php?tid=905631&extra=page%3D1 确保客户端 NLS_LANG = AMERICAN_AMERICA.UTF8 SQL> SELECT * 2 FROM原创 2007-04-27 09:58:00 · 4031 阅读 · 0 评论