程序员便利贴
分类: 数据库 | 评论

oracle自动备份 @echo off set curdate=%date:~0,4%%date:~5,2%%date:~8,2% set backuppath=E:\oracle\databak\%curdate% md %backuppath% exp fnfloa/fnfloauser@orcl file=%backuppath%\fnfloa%curdate%.dmp log=%backuppath%\fnfloa%curdate%.log %date:~0,4%:取得年份 %date:~5,2%:取得月份 %date:~8,2%:取得日 md %backuppath% 建立目录 设置好bat文件后,就可以在计划任务中使用了,选择好备份时间,那么系统将自动备份了。

这几天做项目,因为关系到从MYSQL向Oracle的迁移,所以,有了一些经验。 因为项目一开始就是用MYSQL开发的,所以没想到会出现的问题都出现了。 一、MYSQL可以导入导出脚本,本来应该准备好数据库的备份的初始化数据库和初始化数据的两个初始化脚本,经由MYSQL导出为一个full.sql的总的初始化脚本,用过mysql的都知道,导出的数据库脚本中,包含了建库、建表、以及插入数据的语句。需要分割成两个:建库、建表的初始化脚本和插入数据的初始化脚本。于是我写了一个类,用于分割SQL脚本,在类中,我查找到create table开头的后面紧跟着的字符串,就是表的名字,取出insert开头的语句,改行就是插入数据的,于是,通过文件流读取文件的每一行,如果是插入的取出来放入一个方法convertInsertSQL处理后写入一个脚本文件insert_data.sql中,剩下的写入一个脚本文件create_table.sql中, 方法convertInsertSQL对于插入语句做处理,因为脚本中的插入语句是批量插入的,insert into 表名(列名) values(对应值),( 对应值),( 对应值),所以需要拆分成insert into 表名(列名) values (对应值)这样的语句,所以我通过将前面values(前的值截取后,对剩下的所有对应数据,进行通过),(用正则分割成String数组,对数组进行循环,每次追加组成插入语句,最后将插入语句全部返回后写入文件流。 package com.test.file; import  java.io.BufferedReader; import  java.io.BufferedWriter; import  java.io.File; import  java.io.FileInputStream; import  java.io.FileOutputStream; import  java.io.IOException; import  java.io.InputStreamReader; import  java.io.OutputStreamWriter; import  java.util.HashMap; import  java.util.Map; /** * 将mysql数据库导出的脚本 * 分割成为建库和建表的两个脚本 * @author gaofei * */ public class MyFileReader { /** * @param args */ [...]

分类: 数据库 | 评论

今天需要做一个统计查询,关联很多表,用稍微复杂的SQL语句可以实现,如下: select nn.GXDWMC 汉字标题1, nn.TYMC 汉字标题2,jbsl 汉字标题3,fcsl汉字标题4 ,GSL汉字标题5,Lsl汉字标题6 from Table0103 nn, (select b.GXDWMC as GXDWMC,b.TYMC as TYMC,count(a.TYMC) jbsl from TABLE0901 a,Table0103 b where b.TYMC=a.SSZMC group by  b.GXDWMC ,b.TYMC ) aa, (select b.GXDWMC as GXDWMC,b.TYMC as TYMC,count(c.TYMC) fcsl from Table0103 b ,TABLE0912 c where  b.TYMC=c.SSZMC group by  b.GXDWMC ,b.TYMC ) bb, (select c.GXDWMC as GXDWMC,c.TYMC as TYMC,count(c.TYMC) GSL [...]

分类: 数据库 | 评论

1、  安装SQL 2000数据库和补丁时,如果出现“以前进行的程序安装创建了挂起的文件操作。运行程序之前,必须重新起动计算机。”的提示。 如果不做改动,即使重新启动计算机也同样会出现上述提示。 解决办法如下: 更改注册表:定位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,删除PendingFileRenameOperations,然后重新安装即可。 2、  应用程序无法连接到MS SQL Server 2000. 如果你在ODBC中连接一次,程序就可以正常连接了,开始我以为是程序问题,在网上搜索解决方法,没有找到,问了很多程序高手也无结果,为此苦恼了好长时间,一次我的笔记本重新安装MS SQL Server 2000,并且把SP4补丁打好,程序竟然连接正常了,原来是MS SQL Server 2000的问题,只要把补丁SP4打好就行了。 3、  应用最简便的方式连接MS SQL Server 2000。 一般我们创建了应用,客户端肯定要安装MS SQL Server 2000的客户端软件,否则就无法正确运行,事实上,只要有ntwdblib.dll这个文件就行了,还有就是很普遍的一个问题“未加载DB-library通信层”的错误提示,我也郁闷了好长时间,现在网上还有好多这样疑问的贴子,都没有正解。一次偶然找到了答案,很简单,只要把dbmssocn.dll、dbnetlib.dll这两个文件拷贝到SYSTEM32就OK了。 4、安装瑞星防火墙后MS SQL Server 2000启动不正常。 把服务器地址加入到受信任区域,让防火墙放行1433端口。 5、安装完系统,包括MS SqlServer 2000,打补丁SP4,可是竟然连接不上,Telnet也连接不上,试了好多方法都不行,郁闷了一下午,晚上看瑞星的卡卡安全助手,发现SQLSERVER.EXE,用的端口是1434,奇怪,难道是它感染病毒了(蠕虫王),可是瑞星竟然没有发现!!!把这个进程结束掉,连接正常了!(安装完数据库,首先要运行SQL Server注册 )