随笔分类 -  Oracle积累

摘要:给大家介绍是40多个非常有用的Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。这些是所有Oracle 开发者都必备的技能,所以快快收藏吧!日期/时间 相关查询获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天。你可以用任何的日期值替换 “SYSDATE”来指定查询的日期。 1SELECTTRUNC(SYSDATE,'MONTH')"Firstdayofcurrentmonth"2FROMDUAL;获取当前月份的最后一天 这个查询语句类似于上面那个语句,而且充分照顾到了闰年,所以当二月份有 29 阅读全文
posted @ 2014-02-06 13:44 Mr zhao 阅读(388) 评论(0) 推荐(0) 编辑
摘要:---存储过程中的原语句:---删除表DROP TABLE A_NEWTDDATA;--报错经查询:存储过程不支持DML语言;解决方法: execute immediate 'DROP TABLE A_NEWTDDATA'; 阅读全文
posted @ 2013-11-08 11:12 Mr zhao 阅读(353) 评论(0) 推荐(0) 编辑
摘要:--转载这个要用到add_months()函数 参数 负数 代表 往前 正数 代表 往后。select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;--上一个月select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;--下一个月 阅读全文
posted @ 2013-08-08 15:35 Mr zhao 阅读(6889) 评论(0) 推荐(0) 编辑
摘要:论坛里一个朋友说将DB 服务器系统时间往往后修改了3个月(从11年改成10年),启动DB报600的错误。一. 先做个测试1.1 关闭DBSQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.1.2 修改系统时间1.2.1 现在时间[root@singledb ~]# dateTue Jan 25 11:05:32 EST 20111.2.2 修改时间将时间往前调整一下:[root@singledb ~]# date -s 1/1/2011Sat Jan 1 00:00:00 阅读全文
posted @ 2013-07-17 17:17 Mr zhao 阅读(257) 评论(0) 推荐(0) 编辑
摘要:从Oracle高版本中导出dmp,然后导入到Oracle低版本时会报错:"不是有效的导出文件、头部验证失败",解决方法:方法一:下载软件:AlxcTools,打开后选择要修改的文件,输入要修改的版本,点击修改版本,从新导入即可。方法二:下载 npp.6.4.1.Installer,安装打开要修改的dmp,打开后下图中红色框内是原版本,需要改成你需要的版本,修改后可成功导入。 阅读全文
posted @ 2013-07-10 17:49 Mr zhao 阅读(828) 评论(0) 推荐(1) 编辑
摘要:--导入数据库时提示 超出表空间限额,1536错误,解决方法:去除限额。执行:--alter user username quota unlimited on users;例: alter user bzwlan quota unlimited on users;然后重新导入即可。 阅读全文
posted @ 2013-07-10 09:44 Mr zhao 阅读(543) 评论(0) 推荐(0) 编辑
摘要:Oracle 数据库备份:--保留最近一周的备份记录;====正文:====开始==============echo 设置备份文件存放文件夹... set "tbuf=E:\Cway\backup" echo 设置备份文件名(以星期几命名,即备份文件只保存最近一周)... set name=%date% set name=%name:~-3% set name=ORCL_backup_%name% echo 是否存在同名文件,若存在则删除同名文件... if exist %tbuf%\%name%.dmp del %tbuf%\%name%.dmp if exist %tb 阅读全文
posted @ 2013-05-20 09:43 Mr zhao 阅读(762) 评论(0) 推荐(0) 编辑
摘要:最近遇到从服务器上远程取数据到本地数据库,总结一下:例:从服务器上取表A到本地:Create table A1 as Select * from User.A@ Manage;注:(1)A1:取的数据存到本地创建到A1中;(2)User:用户名;(3)A:要从服务器上取的表;(4)Manage:服务器上的数据库名。 阅读全文
posted @ 2013-05-20 09:33 Mr zhao 阅读(224) 评论(0) 推荐(0) 编辑
摘要:Oracle 某列转为行:昨天遇到需求:一个用户对应多个手机号码,手机号码是单独存在一个表中的,这样展示的时候就需要展示成:用户手机号码用户11585460000,1585461111就需要将两条手机号码展示成一条记录,从网上查了一下,列转行,可以用"WMSYS.WM_CONCAT(TEL)"实现,具体:select USERNAME,WMSYS.WM_CONCAT(TEL) FROM tab1; 阅读全文
posted @ 2013-05-08 11:11 Mr zhao 阅读(946) 评论(2) 推荐(0) 编辑
摘要:转:背景:Oracle10g 服务器,Oracle10g 客户端,windowsXP 操作平台 要求:Oracle 数据库服务器对数据库 ytcn 每天自动备份一次。 解决方案:利用任务计划、批处理文件和 Oracle 的 exp 导出功能,根据日期自动生成 Oracle 备份文件。详细步骤: 1 创建批处理文件 ytcn.bat ytcn.bat中详细内容如下: @echo off echo 正在备份银通网 Oracle 数据库,请稍等...... exp userid='ytcn/ytcn@ytcnas sysdba' file=e:/bak/ytcn/oracle/ytc 阅读全文
posted @ 2013-04-19 11:13 Mr zhao 阅读(485) 评论(0) 推荐(0) 编辑
摘要:--修改数据库中多个表中的同一个字段的长度:DECLAREV_SQLVARCHAR2(1000);CURSORCRISSELECTTABLE_NAMEFROMUSER_TAB_COLUMNSWHERECOLUMN_NAME='JZ_ID';BEGINFORRINCRLOOPV_SQL:='altertable'||R.TABLE_NAME||'modifyJZ_IDVARCHAR2(100)';EXECUTEIMMEDIATEV_SQL;ENDLOOP;END;--(可参照修改成同一字段的列名、注释等) 阅读全文
posted @ 2013-04-18 10:43 Mr zhao 阅读(594) 评论(0) 推荐(0) 编辑
摘要://保留小数点后面两位Math.Round(string string1,int num1,MidpointRounding.AwayFromZero);注:string string1: 要四舍五入的内容;intnum :保留的位数;例:保留两位。double month12_Day = Math.Round(Convert.ToDouble(newFormula[11].ToString()) / 31, 2, MidpointRounding.AwayFromZero); 阅读全文
posted @ 2013-03-15 14:43 Mr zhao 阅读(288) 评论(0) 推荐(0) 编辑
摘要:BEGINDELETE FROM SYSROLEOPENR WHERE ROLEID = 2;INSERT INTO SYSROLEOPENR (PKID, ROLEID, OPERID) SELECT SYSROLEOPENR_PKID_SEQ.NEXTVAL, '2' ROLEID, OPERID FROM SYSMODULEOPER WHERE OPERCODE = '300090010';INSERT INTO SYSROLEOPENR (PKID, ROLEID, OPERID) SELECT SYSROLEOPENR_PKID_SEQ.NEXTVAL 阅读全文
posted @ 2013-03-14 16:44 Mr zhao 阅读(2066) 评论(0) 推荐(0) 编辑
摘要:oracle日期相减收藏:http://hi.baidu.com/echolovejose/item/2bf4b35af54204cdd2e10c77--MONTHS_BETWEEN(date2,date1)给出date2-date1的月份SQL> select months_between('19-12月-1999','19-3月-1999') mon_between from dual;MON_BETWEEN----------- 9SQL>select months_between(to_date('2000.05.20',&# 阅读全文
posted @ 2013-03-14 11:23 Mr zhao 阅读(1333) 评论(0) 推荐(0) 编辑
摘要:Oracle中增加、删除、修改字段--增加字段:alter table XM_urgency add(CITY_AUDIT_STATE VARCHAR2(50)); comment on column XM_urgency.CITY_AUDIT_STATE is '政企绿色通道项目审批状态';--删除字段ALTER TABLE JN_OBJECT DROP COLUMN DISPOSE_STATE;--修改字段长度alter table JD_CONSQUESTION modify CMT_RECIPIENT VARCHAR2(500);--修改列的名称ALTER TABLE 阅读全文
posted @ 2013-01-22 10:58 Mr zhao 阅读(292) 评论(0) 推荐(0) 编辑
摘要:转:完全卸载Oracle方法:软件环境: 1、Windows XP + Oracle 10g 2、Oracle安装路径为:d:\Oracle1、如果数据库配置了自动存储管理(ASM),应该先删除聚集同步服务CSS(cluster Synchronization Services).删除CSS服务的方法是在DOS命令行中执行如下命令: localconfig delete2、在“服务”窗口中停止Oracle的所有服务。3、在“开始”菜单中依次选择“程序”/“Oracle-OraDb10g_home1"/"Oracle Installation Products”/" 阅读全文
posted @ 2012-12-21 08:46 Mr zhao 阅读(293) 评论(0) 推荐(1) 编辑
摘要:查看方法: 以sys或system用户登录查看表空间物理文件的名称,路径及大小:select tablespace_name, file_id,file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 阅读全文
posted @ 2012-12-08 11:21 Mr zhao 阅读(657) 评论(0) 推荐(0) 编辑
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 4.应尽量避免在 where 子句中使用 or 来连接条件,. 阅读全文
posted @ 2012-12-01 09:29 Mr zhao 阅读(210) 评论(1) 推荐(1) 编辑
摘要:INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始 到字符的结尾就结束。 语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 参数分析: string1 源字符串,要在此字符串中查找。 string2 要在string1中查找的字符串. start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始... 阅读全文
posted @ 2012-11-03 11:35 Mr zhao 阅读(506) 评论(0) 推荐(0) 编辑
摘要:SELECT * FROM PRODUCT_COMPONENT_VERSION; 阅读全文
posted @ 2012-10-18 13:48 Mr zhao 阅读(290) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示