已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国石油大学(华东)毕业设计(论文)集输大队报表数据迁移学生姓名:刘 骞学 号:03083107专业班级:软件工程03-1班指导教师:郑秋梅2007年6月20日中国石油大学(华东)本科毕业设计(论文)摘 要随着信息技术的发展,对数据处理提出了越来越多的要求,在异构数据库之间进行数据迁移以及web数据库的建立成为两种常用的的信息处理方式。本文就Oracle向SQL Server的数据迁移作为一个实例,讨论一种数据迁移模式,即通过源、的数据库之间的“对话”确定要抽取和插入的数据,这是实现数据的定时、自动迁移的基础。然后建立网上报表系统将迁移到SQL Server中的数据发布到网上供相关用户访问。本文实例涉及Oracle和SQL Server两大关系型数据库,运用Java实现定时自动迁移模块,JSPResin实现报表系统,两个系统都是基于JDBC机制实现的。在指导老师的帮助下,已经基本上实现了任务书所要求的功能。关键词:数据迁移;数据管理;JDBC;Oracle数据库;SQL Server数据库ABSTRACTWith the development of the information technology, there is more and more demand on data processing. So many kinds of data processing such as data migration between data bases with different architecture or foundation of on-line data bases become very popular. This article takes data migration from Oracle to SQL Server as an example to discuss a migration mode which decides what data to select-and-insert through “talk” between them, and this is also the basic foundation on which the automatic and on-time migration is based. And then a table management system is developed to make the data migrated to SQL Server is available for certain users. The instance in this article involves Oracle and SQL Server, which are the two large-scale relational databases. And the automatic and on-time migration module is programmed in Java while the data form system is base on JSP and Resin. And they are both based on JDBC (Java Data Base Connectivity). With the help of the teacher, the system designed could easily meet the demands listed on the task book.Keywords: data migration; data management; JDBC; Oracle; SQL Server 目 录第一章 前 言11. 研究的目的及意义11.1 研究目的11.2 研究的意义12. 研究现状1第二章 系统实现技术32.1 Oracle数据库32.1.1 Oracle数据库的安装、配置32.1. Oracle数据库的连接32.1. Oracle数据库的查询42.2 SQL Server 数据库52.1 SQL Server 数据库的安装、配置52. SQL Server 数据库的连接52. SQL Server 数据库的插入62.3数据迁移的概念及特点62.3.1 数据迁移的概念62.3.2数据迁移的特点72.3.3 定时、自动迁移72.4数据迁移的实现机制72.4.1 数据的提取和插入72.4.2源、的库间的“对话”72.4.3 定时器的使用7第三章 需求分析83.1 用户需求83.2 系统需求83.3 数据流图93.4 总体设计113.5 开发工具123.6 运行环境12第四章 系统的详细设计及实现134.1系统主要功能模块及实现134.2系统开发过程中遇到的关键问题及其解决154.3数据库设计17第五章 系统总体评价及改进265.1系统总体评价265.2系统存在不足及改进27第六章 总 结286.1 主要工作286.2 心得体会28致 谢30参考文献31附 录32前 言第一章 前 言1. 研究的目的及意义1.1 研究目的为方便高效地实现油田运作,对各种设备的工作运行情况进行记录,并方便各种用户对大量记录进行各种网络操作,需要实现不同数据库系统间数据的定时、自动迁移(Oracle到SQL Server),并基于SQL Server数据库建立B/S平台,允许注册用户通过网络对数据进行查询。1.2 研究的意义一方面,随着油田上先进设备的引进,自动化程度的不断提高使得对设备工作情况的记录、检测有了数据量大、分散采集、集中存储的特点。另一方面,随着信息技术的蓬勃发展,对数据的存储、查询等各种形式的信息处理提出了越来越多的要求,于是许多新技术应运而生。本课题的意义正是在于综合考虑各种技术的特点,选取最符合应用需求的那些技术,并将其有机地结合成一个整体,从而形成一个功能完整、性能稳健的程序,并证各功能模块的高度独立,提高其可重用性,可维护性。由于本课题涉及网络和数据库的各种常用功能,因而课题可以作为网络及数据库应用开发的参考模式。课题中所用到的各种技术都是较为成熟的,但力求在此基础上求精,充份利用各种技术的优点,做到效率与质量并重。2. 研究现状目前基于网络数据库的管理信息系统较为常见,借助高级开发工具也较容易实现,搭建一个基于网络库的平台的技术已较为成熟。事实上这样的系统比比皆是,我们登录的任何一个网站都是不同程度的基于这种技术实现的。但是根据发布的信息量不同,接受信息的对象不同,不同平台所采用的具体技术有很大差别。当用户需要查询数据库表中的大量数据时,需要选择效率较高的技术来进行各种形式的数据处理。数据迁移也是现代信息处理中常用的关键技术,由于技术的发展,不同厂家之间的竞争,实现不同的数据库系统间的数据迁移往往却并不容易而且方式多种多样。简单情形下,只要实现数据的复制,然后用合适的数据库管理系统对其进行组织管理即可;然而大多数情形下各种附加条件的限制,使得数据迁移实现起来颇费周折。例如不同厂家的数据库系统间进行数据迁移就需要考虑其对表中数据以及查询语句不同格式要求及相应的对策;有些情形下不是要迁移源数据库中的所有数据,而是只需检索出部分数据,进行必需的格式转换后插入目的库,另一种常见情形时,源数据库中大量数据定时更新,而为了保持实时性,必须对源数据库进行检测,如发现其某个表中新添加了数据,则将新添加的数据移入目的数据库相应表中。47系统实现技术第二章 系统实现技术2.1 Oracle数据库2.1.1 Oracle数据库的安装、配置点击setup.exe开始安装后,一路点击“下一步”,直到“下一步”为灰色,上面标题栏显示为“Oracle Universal Installer:数据库标识”,这时请需输入“全局数据库名”(SID)继续点击“下一步”,直到“安装”,点击“安装”后开始安装。安装过程中如果出现“错误:没有找到文件D:oracleora92ocs4jadminOCS4J.properties”时,点击“取消”,弹出“取消”对话框后选中“只停止安装该组件”,点击“确定”,安装会继续。 安装到“Oracle Universal Installer:配置工具”的“Agent Configuration Assistant”时,如果报错“ORA-12571:TNS:包写入程序失败”,直接点击“确定”。这步完成时会有个“错误”提示,“确定”就是,然后继续“下一步”,到“Oracle Universal Installer:配置工具”,点击“退出”。Oracle较SQL Server完善、稳健,在Oracle9.0的安装过程中没有太大的问题,只要输入一个数据库名就可以在安装完成后建立一个数据库了(当然安装完成后也可以再建立其他数据库),然后唯一要做的就是配置环境变量,也就是将Oracle的JDBC驱动包classes12.jar包含到class path中即可。这个包不需要下载,因为Oracle已经将它放在%oracle%jdbclibclasses12.jar路径下了1。还有就是有时需要再设置一下监听器或重启一下数据库服务。2.1.2 Oracle数据库的连接如何配置才能使客户端连到Oracle数据库: 要使一个客户端机器能连接Oracle数据库,需要在客户端机器上安装Oracle的客户端软件,唯一的例外就是Java连接数据库的时候,可以用JDBC thin模式,不用装Oracle的客户端软件。加入你在机器上装了Oracle数据库,就不需要在单独在该机器上安装Oracle客户端了,因为装Oracle数据库的时候会自动安装Oracle客户端1。 用过SQL server数据库然后又用Oracle的新手可能会有这样的疑问:问什么我用SQL Server的时候不用装SQL Server的客户端呢?原因很简单,SQL Server也是微软的,它在操作系统中集成了SQL server客户端,如果微软与Oracle有协议,将Oracle客户端也集成到操作系统中,那我们也就不用在客户端机器装Oracle客户端软机就可访问数据库了,不过,这好像是不可能实现的事情。 也有的人会问:为什么在SQL server中没有侦听端口一说,而在Oracle中要配置侦听端口?其实SQL server中也有侦听端口,只不过微软将侦听端口固定为1433,不允许你随便改动,这样给你一个错觉感觉SQL server中没有侦听端口,咳,微软把太多的东西都封装到黑盒子里,方便使用的同时也带来的需要副作用。而Oracle中的侦听端口直接在配置文件中,允许随便改动,只不过无论怎样改动,要Oracle服务器端设置的侦听端口一致。迁移和报表系统分别是通过Java和JSP实现的,两者都能够方便地通过JDBC来取得与Oracle数据库的连接1。Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();String url=jdbcracle:thinlocalhost:1521:facility;String user=scott;String password=tiger;Connection conn= DriverManager.getConnection(url,user,password) 2;2.1.3 Oracle数据库的查询对Oracle的查询是通过预编译的SQL语句实现的,这就保证了与SQL Server之间的“对话”的进行。通过在查询条件中设置变量,就能够完成动态查询功能。String oracleSelect = select *from SCOTT.TABLE where DATE? or (DATE=? and TIME?) order by DATE, TIME ;PreparedStatement oraclePrepstmt= conn.prepareStatement(oracleSelect,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);oraclePrepstmt.setDate(1,latelyDate);oraclePrepstmt.setDate(2,latelyDate);oraclePrepstmt.setString(3,latelyTime) 2;2.2 SQL Server 数据库2.2.1 SQL Server 数据库的安装、配置SQL Server在使用上方便一些,特别是它提供一些功能强大的工具,入导入导出向导等。SQL Server安装成功后正式使用之前还有几件事要做,首先是根据所使用的系统下在一个最高版本的补丁(如SP4)安装到系统上,然后还要再下载一个JDBC驱动包同样安装,再设置一下环境变量,即把Microsoft SQL Server 2000 Driver for JDBClib下的msbase.jar,mssqlserver.jar,msutil.jar包含到class path中3。2.2.2 SQL Server 数据库的连接在通过JDBC连接SQL Server遇到的最大问题是报错: MicrosoftSQL Server 2000 Driver for JDBCError establishing socket. 原因如下:1.通过URL连接的时候指定的服务器名称或者服务器地址不正确,这一点可以通过ping来验证。2.指定的服务器上的SQL Server的服务没有启动,可以通过SQL Server的查询工具来验证这个问题。3.指定端口错误,SQL Server的默认端口是1433。4.sql server没有提供TCP/IP的服务,可以通过SQL Server的管理工具来查看这个问题。 5.如果系统是 windows XP 或者 Windows 2003,那么SQL Server一定要升级到sp3以上.解决了上面的问题,就可以顺利地连接SQL Server了,迁移和报表系统分别是通过Java和JSP实现的,两者都能够方便地通过JDBC来取得与SQL Server数据库的连接。(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=mydb;String user=sa;String password=;Connection conn= DriverManager.getConnection(url,user,password); 2.2.3 SQL Server 数据库的插入SQL Server插入也是使用预编译的SQL语句,但由于不同的插入语句变量设置不完全相同,为保证可重用性采用循环自动生成该SQL语句,同样变量赋值也是使用循环自动完成的。不同类型的数据在异构数据库间迁移时需要分别进行处理3。使用可更新的结果集也可以对数据库进行更新,但向数据库插入记录时会报错,JDBC驱动不支持特定的数据类型,网上关于这个错误的讨论很少,而且都很含糊,所后来放弃了这种方式改用预编译的SQL语句,效率还可以,使用起来也不麻烦。2.3数据迁移的概念及特点2.3.1 数据迁移的概念数据迁移是现代信息处理中不可或缺的一种数据操作方式,它与代码迁移的区别在于后者将异地(异构系统)代码迁移至本地以处理本地数据,相反前者是将本地数据以某种方式迁移到异地(异构系统)以供其应用程序操作。使用存储介质转储、利用导入导出工具、通过网络上传下载数据等很多数据操作都可以归为数据迁移的范畴,狭义的数据迁移主要指数据库之间的数据转移。2.3.2数据迁移的特点数据迁移是为了在异地(异构系统)中对数据进行处理,不是数据的简单备份,进行过程中可能需要对源数据进行筛选、格式转换等操作以满足目的系统的需求从而保证迁移的有效性。本文实例通过基于JDBC的两库对话机制确定要迁移的数据。JDBC不能直接操作日志文件,但可以通过建表来模拟日志,然后通过JDBC来维护和使用该模拟日志。也可以通过在各表最后添加一个辅助标志字段来实现该操作。2.3.3 定时、自动迁移为实现定时迁移,即保证目的系统的实时性要求,需设置定时机制以定时激活迁移进程。通过源、的数据库的“对话”确定要迁移的数据,这样就保证了有效数据的迁移能够在没有人工干预的情况下自动进行。二者结合起来就实现了数据的定时、自动迁移。2.4数据迁移的实现机制2.4.1 数据的提取和插入由于要实现数据的自动迁移,所以数据的提取和插入都要通过动态SQL语句来完成,该语句中的变量通过循环语句自动设置,语句中的变量列表通过数据库表的元数据类型自动生成。2.4.2源、的库间的“对话”先查询一次SQL Server数据库,确定最近一次增加记录发生的时间,再将Oracle中所有晚于这个时间的记录查询出来,然后插入SQL Server中,实现SQL Server向Oracle的“看齐”。2.4.3 定时器的使用Java系统提供的timer类可以很好的满足本系统的需求,通过在类中安排任务日程,实现多个任务的定时执行,方便程序的调试及功能的增强。需求分析 第三章 需求分析3.1 用户需求迁移系统应能够每隔一小时自动地将集输大队11个设备运行记录表中需要迁移的数据从Oracle数据库迁移到SQL Server数据库相应表中,保证数据的实时性要求。系统应方便用户使用,只要启动系统,在无任何人工干预的情况下,就能够实时、准确地实现数据的自动迁移,从而保证两数据库中数据在一定时间延迟内的一致性。报表系统应能为系统用户进行分级管理,不同级别的用户具有不同的权限。管理员具有最多的权限,其次为高级用户,普通用户只能对报表进行查询。具体说来,报表系统应能为为管理员用户提供用户管理如添加新用户、删除旧用户功能及高级用户具有的所有功能;为高级用户提供集输大队11个设备运行记录表的增、删、改的功能及普通用户具有的所有功能;为普通用户提供集输大队11个设备运行记录表的查询功能。3.2 系统需求一、迁移系统迁移系统应能够保证两数据库中数据在一定时间延迟内的一致性。每次执行应能够成功地取得与数据库的连接,然后实现两库“对话”及SQL Server数据库中的11个设备运行记录表向Oracle数据库中相应的表“看齐”;迁移系统应能够保证实时性,每个一个小时执行一次,每次执行所需的时间不应超过5秒,即在5秒钟之内将Oracle数据库中新添加的数据迁移至SQL Server数据库中;系统在一个月内不能出现2次以上故障,当某次迁移失败时,下次执行迁移过程应仍能正常启动;当某个表的某次迁移过程失败时,系统应能够告知用户该表的迁移过程出现故障,下次执行迁移过程应能对该次失败进行弥补;系统应使用应使用安全性较好,且操作数据库较方便的Java语言编码实现;两个数据库都安装了相应的JDBC驱动及所需补丁,并进行了必要的环境配置。二、报表系统设置管理员、高级用户、普通用户三种具有不同权限范围的用户;管理员应能够方便的添加或删除用户;高级用户、普通用户应能按各自的权限对11个表进行相应的操作,如查询满足某些条件的记录或更新查询结果中某些记录;用户对系统所要求的操作应能够在10秒之内完成;用户对系统所要求的操作应能得到系统的正确响应;对于用户的不合理输入应输出相应的出错信息或不予响应;系统应基于SQL Server数据库使用JSP和Resin实现;用户应能对数据库中新添加的表进行操作。3.3 数据流图系统总体数据流图见图1。给定数据源报表系统用户要求结果定时报入定时迁移系统网上报表系统定时、自动报入图1 顶层数据流图连接Oracle及SQL Server定时器将Oracle中新增数据导入SQL Server检测Oracle中是否有新数据有定时间隔到迁移模块用于将Oracle中的数据迁移到SQL Server中,其数据流图见图2。连接成功无图2 迁移模块的数据流图报表模块用于对用户的登录信息进行修改,其数据流图见图3。用户登陆合法操作表名用户权限鉴定身份验证用户名密码出错信息其他操作不合法相应用户界面图3 报表模块的数据流图3.4 总体设计整个系统包括数据迁移和数据报表两大系统,二者都是通过JDBC机制操作数据库,关键在于动态SQL语句的使用。一、系统要操作的表本系统涉及以下11个设备运行记录表:(1) 分离设备运行记录报表,(2) 泵运行记录报表,(3) 气体流量计运行记录, (4) 污水处理站运行记录,(5) 水处理装置运行记录报表,(6)液体流量计运行记录, (7) 加热炉运行记录, (8) 压缩机运行记录,(9) 站加药运行记录,(10) 注水站运行记录,(11) 储罐运行记录二、迁移系统设计迁移系统将上面的11个设备运行记录表中的数据从Oracle迁移到SQL Server。采用JDBC机制连接数据库,并对数据库进行查询、插入。系统启动后,在定时器控制下,当定时时间间隔到达后,系统将自动连接数据库,若连接成功则比较两数据库中数据将Oracle中新添加的数据插入SQL Server 数据库中。具体实现为先查询一次SQL Server数据库,确定最近一次增加记录发生的时间,再将Oracle中所有晚于这个时间的记录查询出来,然后插入SQL Server中,实现SQL Server向Oracle的“看齐”。本系统地实现模式具有一定的实用性和通用性,定时由线程定时器实现,可以保证多个任务并发进行、互不影响。基于JDBC机制实现的源、的数据库间的“对话”,使得该模式具有较大的灵活性,采用不同的对话,即可实现多种不同的功能。两者的结合,使得该系统具有了很好的实时性及智能性,保证了自动定时迁移的实现。三、报表系统设计报表系统将SQL Server的11个设备运行记录表中的数据发部到网上供用户操作。由于报表系统是针对特定用户的,而并不是所有网络上的用户都有资格注册成为本系统的合法用户。所以,我们采用一种基于管理员确认的注册机制。首先,由想要使用报表系统的人向管理员提出申请,管理员对申请用户的合法性进行验证;验证通过,由管理员将该用户添加进系统,成为系统的合法用户。新添加的用户可以是普通用户、高级用户或管理员用户。管理员用户能够进行用户管理,可以将其他用户删除。3.5 开发工具(1)JDK1.4.2(2)Resin(3)Edit Plus3.6 运行环境(1)操作系统:Windows9X/2000/XP/2003(2)jdk1.4或更高版本(3)Web 服务器:Resin3.0或更高版本(4)客户端浏览器:IE5.0及以上版本系统的详细设计及实现 第四章 系统的详细设计及实现4.1系统主要功能模块及实现一、迁移系统1. 定时器模块本模块的主要功能是每个一小时调用一次迁移模块,保证系统的实时性。基于线程实现的定时器,可以同时为多个并发进行的任务分别设定不同时间间隔。实现方式为通过继承系统提供的timer类,在该继承类中定义所需要执行的任务类,然后通过在executor()方法中调用timer类的schedule()方法为任务类设定执行间隔并设定该任务。其中自定义的任务类是作为内部类来定义的,继承类中的executor()方法是对timer类executor()方法的改写。这样通过在main()方法中调用继承类的executor()方法及可创建一个线程,该线程控制其创建的任务线程的定时执行。针对11个设备运行记录表在main()方法中通过循环创建11个定时器线程,故对这11个设备运行记录表的迁移是并发进行的。2. 迁移模块迁移模块对应定时器中自定义的任务类,主要功能为检测Oracle数据库表中新数据的添加和将新添加的数据迁移至SQL Server数据库相应表中。前者称为源、的数据库的“对话”,后者称为目的数据库向源数据库“看齐”。实现方式为通过JDBC机制取得与数据库的连接先查询一次SQL Server数据库,确定最近一次增加记录发生的时间,再将Oracle中所有晚于这个时间的记录查询出来,完成“对话”;然后将这些记录插入SQL Server中,实现SQL Server向Oracle的“看齐”。 两库“对话”的实现是基于设备运行记录表的关键字中包含时间类字段这一特点实现的,否则需要另建辅助表来模拟日志功能以实现获得Oracle中新添加记录的信息。“对话”的结果是生成一个包含Oracle中新添加记录的结果集,“看齐”则是将这个结果集中的数据插入到SQL Server中,从而保证两库数据的一致性。这个插入过程是通过动态SQL语句来实现的,即首先根据数据库表的元数据类型取得该表各字段信息以生成参数列表,然后将“对话”所得结果集中的数据赋值到该SQL语句,执行该SQL语句便可插入一条记录。通过循环反复对该SQL语句赋值并执行之就实现了SQL Server向Oracle的“看齐”。二、报表系统1.用户管理模块用户管理是通过在SQL Server创建包含用户名、密码、用户类型三个属性的users表并通过JDBC机制对其进行操作来实现的。包括添加用户和删除用户两个子模块。(1) 添加用户由管理员用户输入新用户的用户名、密码并选择用户类型,提交后系统对查询users表以新用户信息进行检验,当用户名为空或已存在时提示用户重新输入,否则新用户信息插入到users表并显示新用户添加成功页面。基于JDBC机制下的动态SQL语句实现向users表插入记录4。(2) 删除用户系统列出users表中所有用户的信息,管理员选中要删除的用户从users表中删除之,显示用户删除成功信息及其余用户的帐户信息。基于JDBC机制下的可更新的结果集实现删除users表中选中的记录4。2.设备运行记录表访问模块设备运行记录表访问是通过JDBC机制操作SQL Server中的11个设备运行记录表来实现的。包括查询、增删改4个子模块。(1)查询设备运行记录表用户选择要查询的表然后输入要查询的记录满足的条件,若用户未输入查询条件则查询表中所有记录,检查用户输入的查询条件,如为非法输入则不予执行,执行成功后分页显示查询结果,用户可以通过翻页来浏览结果。基于JDBC机制下的动态SQL语句实现向查询条件处理。首先根据用户输入的查询条件生成SQL语句的条件字句,然后执行该SQL语句得到查询结果4。(2)向设备运行记录表添加新记录用户选择要添加记录的表,然后输入要添加的记录,对用户输入的数据进行检验,若某条记录中非空字段为空或违反唯一性约束则显示相应出错信息,否则将记录插入相应表中。基于JDBC机制下的动态SQL语句实现向设备运行记录表中插入记录5。(3)删除设备运行记录表的记录对记录的删除是依附于查询实现的,高级用户的查询结果显示页面具备删除选项,用户可以选中要删除的记录从结果和数据库中删除之。基于JDBC机制下的可更新的结果集实现删除设备运行记录表中被选中的记录。(4)修改设备运行记录表的记录对记录的修改也是依附于查询实现的,高级用户的查询结果显示页面具备修改选项,用户可以选中要修改的记录然后进入修改页面对记录进行修改,对用户输入的数据进行检验,若某条记录中非空字段为空或违反唯一性约束则显示相应出错信息,否则将修改结果保存到相应表中。基于JDBC机制下的可更新的结果集实现修改设备运行记录表中被选中的记录5。4.2系统开发过程中遇到的关键问题及其解决一、Oracle数据库中表的创建在Oracle数据库中创建表要为该表指定一个方案和表空间。如“create table YS_DHB02()”不能建立表YS_DHB02,正确的写法是“create table SCOTT. YS_DHB02 ()”,即为表YS_DHB02指定方案SCOTT。在语句最后加上TABLESPACE EXAMPLE;即为表YS_DHB02指定表空间EXAMPLE。二、Oracle数据库中新添加数据的提取如何确定需要迁移的数据是迁移系统的关键也是难点,本系统是基于设备运行记录表的关键字段中包含时间类字段来解决至一问题的。实现方式为通过JDBC机制取得与数据库的连接先查询一次SQL Server数据库,确定最近一次增加记录发生的时间,再将Oracle中所有晚于这个时间的记录查询出来。三、SQL Server数据库的安装在安装SQL Server数据库的时候提示:“某个程序在计算机上挂起一个进程,运行安装程序之前必须重新启动计算机” 可能是先前安装了一些其它程序或软件后,再安装SQL server 程序时,系统错误,总是提示:“某个程序已在计算机上挂起了一个进程。运行安装程序之前必须重新启动计算机”。但是,重启计算机,再安装,仍然出现同样的提示。在网上查找,得知是安装程序在先前的安装过程中在系统注册表留下某些信息,导致不能安装。解决方案:打开注册表编辑器,在HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession Manager右面窗口中找到Pending File Re name Operations,删除该键值,关闭注册表编辑器。重新安装SQL Server 2000挂起这个问题便解决了。四、SQL Server数据库连接与用户身份的验证方式若安装时选择,windows身份验证方式则通过JDBC连接时会报错:“未于信任SQL Server连接相关联”。解决方式为打开SQL Server 企业管理器,右击本地的SQL Server ,选择属性、安全性,修改身份验证为:windows和SQL Server。五、通过JDBC机制向数据库中插入数据为这个问题头疼的时间很长,因为开始时打算使用可更新的结果集实现数据库的更新,在修改和删除记录时都没有遇到很棘手的问题,但插入记录时报错:MicrosoftSQL Server 2000 Driver for JDBCThe specified SQL type is not supported by this driver. 在网上也搜不到可行的解决办法,最后不得不改用预编译SQL语句代替可更新的结果集实现向数据库中插入记录。六、Oracle数据库连接出现问题:“无法识别的数据库SID”开始遇到这个问题时很郁闷,因为不仅通过JDBC无法连接到数据库,而且SQL Plus Worksheet及Enterprises manager都无法连接到数据库。解决办法为重新启动Oracle Service Facility服务,其中Facility为数据库SID。七、大量数据导入源数据库这里的问题在于给定的11个表的源数据存在关键字重复的情况, 数据量又比较大(平均在1500条以上),所以不能通过导入导出工具直接导入数据库中。解决方式为通过编写基于PIO包的Java模块将关键字重复的记录筛选掉。八、使用PIO包连接excel文件与结果集的生成给定的11个表的源数据为excel文件,使用这些excel文件作为数据源实现设备向Oracle数据库报表的模拟模块是比较理想的,但通过PIO包取得与excel文件的连接效率很低而且莫名其妙地与JDBC中Result Set的生成产生冲突(只有先执行到的那一个能够成功),所以后来不得不放弃这个思路,只用PIO包将数据导入Oracle,而后基于Oracle中后备表实现该模块。4.3数据库设计数据库中各表的字段规定如下:序号字段代码字段名称主码空值类型宽度小数1DWDM单位代码YNVARCHAR2212DWMC单位名称VARCHAR2403FLQBH分离器编号YNVARCHAR2124RQ日期YNDATE5CJSJ采集时间YNVARCHAR256YXSJ运行时间NNUMBER527CLYL处理液量NUMBER628CLQL处理气量NUMBER629HSL耗水量NUMBER8110HDL耗电量NUMBER8111ZQL蒸汽量NUMBER8112FLSBMC分离设备名称YNVARCHAR22013FLSBXH分离设备序号YNVARCHAR2114QYJM气液界面NUMBER4215YSJM油水界面NUMBER4216HS含水NUMBER5217GWJZMC高温介质名称VARCHAR25018GWJZJKWD高温介质进口温度NUMBER5119GWJZCKWD高温介质出口温度NUMBER5120GWJZCKYL高温介质出口压力NUMBER5221DWJZMC低温介质名称VARCHAR25022DWJZJKWD低温介质进口温度NUMBER5123DWJZCKWD低温介质出口温度NUMBER5124DWJZCKYL低温介质出口压力NUMBER5225FLJB分离级别VARCHAR22026GZYL工作压力NUMBER5227GZWD工作温度NUMBER5128YMKZJG液面控制机构VARCHAR25029BZ备注VARCHAR240文件代码:YS_DHB04 文件名称:储罐运行记录序号字段代码字段名称主码空值类型宽度小数1DWDM单位代码YNVARCHAR2212DWMC单位名称NVARCHAR2403ZM站名YNVARCHAR2204RQ日期YNDATE5CJSJ采集时间YNVARCHAR256CCJZLX储存介质类型YVARCHAR217CGBH储罐编号YNVARCHAR2128CGMC储罐名称VARCHAR2169YXSJ运行时间NNUMBER5210YW液位NUMBER6311CGCL储罐存量NNUMBER9212MD密度NUMBER6413HS含水NUMBER5214YG油高NUMBER6315WD温度NUMBER5116JKYL进口压力NUMBER6317CKYL出口压力NUMBER6318GLGJKYL过滤罐反冲洗进口压力NUMBER5219GLGCKYL过滤罐反冲洗出口压力NUMBER5220FCSL放出水量NUMBER6221WD温度NUMBER5122DSGD底水高度NUMBER5223GDNSHD罐底泥沙厚度NUMBER5224CGJCJL储罐检测记录VARCHAR24025YXZT运行状态VARCHAR31026BZ备注VARCHAR220文件代码:YS_DHB05 文件名称:加热炉运行记录序号字段代码字段名称主码空值类型宽度小数1DWDM单位代码YNVARCHAR2212DWMC单位名称NVARCHAR2403ZM站名YNVARCHAR2204RQ日期YNDATE5CJSJ采集时间YNVARCHAR256JRLBH加热炉编号YNVARCHAR2127YXSJ运行时间NNUMBER528JKWD1进口温度NNUMBER519CKWD出口温度NNUMBER310JRJZ加热介质VARCHAR21011STYL水套压力NUMBER4212SWGD水位高度NUMBER4213PWCS排污次数NUMBER114JKYL进口压力NNUMBER5215CKYL出口压力NNUMBER5216RYYL燃油用量NUMBER6317RQYL燃气用量NUMBER7118RLYL燃料压力NUMBER4219FRL发热量NUMB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年事业编这家单位招聘3人备考题库及完整答案详解1套
- 小学英语语音语调训练与听力和口语技能融合研究教学研究课题报告
- new华中农业大学2026年思想政治辅导员招聘备考题库及完整答案详解
- 宁德人民医院2025年编外人员招聘备考题库(七)及答案详解(考点梳理)
- 2026年富源县第七中学招聘临聘教师备考题库及答案详解(考点梳理)
- 中山大学附属第三医院2026年合同人员招聘备考题库及答案详解一套
- 2026年民航西北空管局招聘备考题库及答案详解(考点梳理)
- 2026年福田区第三幼儿园(石厦)招聘备考题库及一套答案详解
- 2025年区块链深化跨境电商供应链金融应用探索报告
- 2025年智能投影仪便携化五年国际化发展报告
- 航空运输合同纠纷起诉状
- 有序则安之现场定置管理技术
- V型滤池设计计算书2021
- 多晶硅还原炉内壁抛光装置的设计
- 医院护理培训课件:《老年患者静脉输液的治疗与护理》
- 虚拟交互设计课程标准6
- 中医治疗“气淋”医案15例
- 富顺县职教中心教学楼BC栋二职中迁建工程施工组织
- LY/T 1690-2017低效林改造技术规程
- GB/T 24139-2009PVC涂覆织物防水布规范
- 教师幽默朗诵节目《我爱上班》
评论
0/150
提交评论