Oracle复杂查询
1、查询两个日期之间的数据。
假设有表Table1,其创建表的sql语句为:
create table Table1(
StationID NUMBER(10) Primary key,
Year NUMBER(4) not null,
Month NUMBER(2) not null,
Day NUMBER(2) not null);
现在我需要查在'2005-01-01'至'2006-01-01'之间的所有数据,遇到的主要问题是:表Table1中的日期信息分别存放在三个字段(Year,Month,Day)中,怎样实现这一查询呢?
答案如下:
SQL>select * from Table1 where to_date(concat(concat(concat(concat(year,'-'),lpad(month,2,0)),'-'),lpad(DAY,2,0)),'yyyy-mm-dd')
between to_date('2005-01-01','yyyy-mm-dd') and to_date('2006-01-01','yyyy-mm-dd');
答案解释:
(1)使用concat函数连接Year,Month,Day三个字段,从而构造一个新的字符串(包含年、月、日信息),使其格式为:'年-月-日';
(2)使用lpad函数补足月份及天数,使之都是二位,这是因为to_date函数的第一个参数是必须为'yyyy-mm-dd'类型;
(3)使用between and来确定范围。
相关文档:
对于UNDO
表空间大小的定义需要考虑UNDO_RETNETION
参数、产生的UNDO BLOCKS/
秒、UNDO BLOCK
的大小。undo_retention
:对于UNDO
表空间的数据文件属性为autoextensible,
则undo_retenion
参数必须设置,UNDO
信息将至少保留至undo_retention
参数设定的值内,但UNDO
表空间将会自动扩展。对于固定UNDO
表空间 ......
1,查看当前的保护模式
select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
2,查看日志的传送方式;
select dest_name,archiver from v$archive_dest;
3,停止standby的自动恢复状态
alter database recover manager standby database finish;
4,添加standby logfile
&nb ......
在 Windows 上安装 Oracle 数据库 11g
安装Oracle 软件,必须使用 Oracle Universal Installer。
1.在这一安装中,您需要使用 DVD 或下载 DVD 版本。在本教程中,将从已下载的版本进行安装。在解压缩 DVD 文件的目录中,打开 Windows 资源浏览器并双击 \db\Disk1 目录的 setup.exe。
2.安装的产品为 Oracle Da ......
Oracle安装后,会把4个服务设为自动启动,分别为:
1. OracleOraHome90Agent
2. OracleOraHome90HTTPServer
3. OracleOraHome90TNSListener
4. OracleServiceORA
其中第二个不是必须的,可以在服务里把它禁用。其他三个在Oracle运行时都要启动。
  ......
一、 常用日期数据格式
1.Y或YY或YYY 年的最后一位,两位或三位
SQL> Select to_char(sysdate,'Y') from dual;
TO_CHAR(SYSDATE,'Y')
--------------------
7
SQL> Select to_char(sysdate,'YY') from dual;
TO_CHAR(SYSDATE,'YY')
---------------------
07
SQL> Select to_char(sysdate,'YYY') from ......