易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

一次oracle support的危机现场处理(之二)

天有不测风云,
IBM 的中端磁盘阵列这次又惹祸了。在微码升级的时候,
DS4800 发生故障。导致当时在这台库上的几套生产库报错了。
IBM工程师把阵列故障恢复后,拍拍屁股走人,阵列上的数据又得我们来想办法抢救了。。。。
还好有oracle support的支持我们最终化解了这次危机。下文详细介绍了整个恢复的过程。
oracle工程师到达现场后,根据错误信息,
|||||||||||||||||||||||||||||||||||||||||||||||||||||
错误信息如下所示:
Mon Apr 26 20:40:06 2010
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter default value as /oracle/product/10.2.0/db/dbs/arch
Autotune of undo retention is turned on.
IMODE=BR
ILAT =121
LICENSE_MAX_USERS = 0
SYS auditing is disabled
ksdpec: called for event 13740 prior to event group initialization
Starting up ORACLE RDBMS Version: 10.2.0.4.0.
System parameters with non-default values:
  processes           &nbs ......

Oracle中的to_date()

Oracle中to_date()与24小时制表示法及mm分钟的显示:
在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会和我一样,直觉的采用“yyyy-MM-dd HH:mm:ss”的格式
作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。如:
to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') ;
原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。
to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') ;
另要以24小时的形式显示出来要用HH24
......

Oracle_获取最新日期的数据

数据库数据
ID
UserName
Date
1
User1
2010/4/27
1
User1
2010/4/11
1
User1
2010/4/1
要求:
获取最新日期的一条数据
Sql语句:
 select t.* from tb t where date = (select max(date) from tb where id = t.id) order by t.id ......

Oracle 多行转列函数

Oracle中使用WMSYS.WM_CONCAT函数进行多行转列
原数据:
rank   name 
AA      NAME1
AA      NAME2
AA      NAME3 
BB      NAME4
BB      NAME5
SQL>select  trim(t.rank) as rank,
                   wmsys.wm_concat(trim(t.name))  as name
         from table_name  t
            group by  t.rank;
实现的效果是:会先按rank分组,将分组后的name以“,”按组合并为一列。
结果如下:
rank   name 
AA      NAME1,NAME2,NAME3
BB      NAME4,NAME5
注:默认以“,”字符连接合并后的结果 ......

关于oracle的小知识

select trunc(sysdate ,'yyyy') from dual   --本年度第一天
              
select trunc(sysdate ,'mm') from dual     --本月第一天
              
select trunc(sysdate ,'dd') from dual       --当前日期
dbms_output.put_line( to_char (  ((sysdate)+  ( 10 / ( 24*60*60 ))    )  , 'yyyy-mm-dd hh24:mi:ss'  ) ) ;--当前时间+10s 
dbms_output.put_line( to_char (  trunc(sysdate)+(  1 +  1/24   ) , 'yyyy-mm-dd hh24:mi:ss'  ) ) ;       --当前  第2天 1点
dbms_output.put_line( to_char (  trunc(sysdate)+(  1 +  9/24   ) , 'yyyy-mm-dd hh24:mi:ss'  ) ) ;       --当前  第2天 9点
 create table tb_old as select * from tb_new ......

oracle nvl decode

SELECT
DECODE(列,0,'Q'1,'P',2,'O') AS ret
from dual
--分析: 当 列=0时,将"Q"赋值
--当 列 =1时,将"P"赋值
--当 列=2时,将"O"赋值
--NVL()函数:
--NVL(ARG,VALUE)达标如果前面的ARG值为NULL那么返回的值为后面的VALUE二者结合使用:
DECODE(NVL(变量 ''),'','-','OK')
//分析:
--若 变量 是否为空.若为空赋给空值[NVL函数]
--其次,判断取出的字段是否为空,如果是则赋给'-'
--默认处理是OK。  ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [112] [113] [114] [115] 116 [117] [118] [119] [120] [121]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号