如何利用Object Browser图形化工具提高Oracle开发工作效率(一)SQL编写调试篇

roadByroad 2013-06-06 11:27:26
SI Object Browser V12 的最新版提供了全中文的GUI图形操作界面。
首先,我们利用“图形编译器”这个功能来傻瓜式的创建这样一个SQL语句。
【select 部门表.部门代码,部门表.部门名称,员工表.员工代码,员工表.员工名称,员工表,员工生日 from部门表,员工表 where员工表.部门代码 = 部门表.部门代码 where 员工表.删除标识 = 0 order by 部门表.部门代码,员工表.员工代码,员工表.员工生日 desc】

正常情况下我们会一个字母一个字母的敲,一个表名一个字段名的找,而用“图形编辑器”这个功能,我们可以瞬间得到这个SQL语句。


1,选中部门表和员工表,点击选择,在图形编辑区就出现两个表的对象,并列出了所有的字段。
2,这时我们可以在表对象中为表定义别名,如图将部门表定义为A,员工表定义为B。
3,通过鼠标拖拽,我们即可完成部门表与员工表之间的表关系定义。如图选中表A中的DEPPART_CD,拖拽到表B中的DEPART_CD处。默认为两字段相等,若要修改为大于,小于等其他关系可以双击等号来定义。
4,双击表对象中的字段,就可以添加select项了。



点击“执行”显示查询结果,底部显示处理时间。
接下来我们看看,对查询结果我们都可以做些什么?


在实际开发项目时,很多人都会遇到查询项太多,导致要查找一个字段横着拉滚动条拉阿拉啊…非常困难的情况。这时点击左侧的第二个按钮“更改输出方向”,就会变成这样…这下就轻松多了!


在SQL调试时,还有一个问题,就是开了很多SQL执行窗口,关掉之后再想找回来就…ObjectBrowser强制将执行过的SQL语句保存在历史记录中,点击“历史记录”就可以查看


有时我们的SQL过于庞大,执行效率很低,需要我们查看该SQL的“执行计划”。


对于SQL的调试来说,开发人员经常遇到很多很多小问题。虽然都很容易解决,但是往往要花费一些不必要的时间。
比如,想要把所有的select项目拷贝出来,可是SQL是竖着写的,怎么办?一般的做法是把SQL整个拷贝到文本编辑器中去实现。而Object Browser的右键菜单“矩阵选择模式”可以直接实现。
再比如,不知道谁写的SQL大小写混杂,真不规矩!如果要统一,还要使用其他文本编辑器…而Object Browser的右键菜单可以对选中SQL直接转换大小写。
还比如,我们是不是经常几分钟内连续做回车一下,回删两下,向右一下,回车一下,回删两下,向右一下….等重复性的劳动?那是因为oracle工具都不提供宏功能。而Object Browser的右键菜单里的宏功能可以帮助你。


在老版本的Object Browser中,一次只能执行一条SQL,遭到很多人的吐槽。这次新版本V12提供“多条SQL同时执行”,这一点弥补了ob以往的不足。另外,“只执行选中的SQL”这个功能也跟上了。对了,还有“快捷键批量注释”等…



有关SQL编写和调试过程中能够遇到的问题基本上都可以解决了。当然,开发人员的欲望是永远不会被满足的,ob还有很多不足之处。比如SQL执行错误没有指定到行号等,这些期待在新版本中去解决吧。

看到这里,是不是有些功能可以帮助你解决正在困扰你的难题呢?还有很重要的一点,开发工具永远起到的是辅助性的作用,如何灵活利用一款或多款工具解决自己遇到的问题,才是我们最应该动脑的问题。

在下一篇中,我们将介绍如何利用GUI图形界面简单的创建和修改表,视图,索引,JAVA类,PROCEDURE,PACKAGE,FUNCTION,TYPE,TRIGGER,SEQUENCE,CLUSTER,SYNONYM,LIBRARY…等





...全文
461 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eclipse_web 2013-07-18
  • 打赏
  • 举报
回复
好像很容易上手啊
u010488981 2013-06-27
  • 打赏
  • 举报
回复
bonlog 2013-06-07
  • 打赏
  • 举报
回复
不错, 若要让更多的人使用此软体,一定要有其长处。 不过竖形选择,较为新颖
介绍 Object Browser

● 是一个 All IN ONE 的综合性开发工具
Object BrowserOracle开发,管理,维护等各项功能集成一体,只要启动Object Browser,就能完成所有工作.
● 是一个对象还原工具.
Object Browser直接访问Oracle中的数据库对象,并能将其还原成原代码,所以不需要任何其他的代码管理工作。只要将Object Browser连接上数据库,就能将整个系统还原成原代码和文档资料。
● 是一个轻便快速的工具
如果你使用过其他的Oracle开发工具Object Browser的速度就一定会令你惊讶不已。特别是对于大规模的系统,经过精心设计的性能优化功能对于编写高效率的SQL及系统管理非常有效。

Object Browser是由日本System Integrator 公司设计制造的一个全面支持ORACLE数据库的开发工具.凭借着卓越的性能及超群的用户友好性,Object Browser在日本市场上创出了非常好的销售业绩,在过去三年中,每个月都创下新的销售记录.到目前为止,该产品已经被5000家企业采用,具有很强的竞争力.

今年六月份,System Integrator推出Object Browser7.0版,为了提高软件开发的效率,简化ORACLE数据库开发维护人员的工作,我们同System Integrator进行合作,在中国市场上推广其产品.Object Browser7.0中文版目前已经问世,为使中国消费者便于购买,我们将以低于日本市场四分之一的价格进行销售(700元/每个用户).而且推出与正式版功能完全相同的一个月有效的免费试用版,对试用版的用户也将提供全面的支持.

    Object BrowserORACLE数据库提供了大量图形界面,通过各种充实的功能向ORACLE开发,维护人员提供非常专业的支持.优良的设计,使其特别适合于大型应用系统的开发,维护及性能优化,提高工作效率. 下面将介绍一些Object Browser的特征.

■支持Oracle8i中新的数据库对象.
    可以生成/删除Oracle8i中新出现的JAVA类数据库对象. 也追加了表分区存储的功能.当然,在原来的Oracle8, 7 上也可以正常运行.

■追求批处理的简洁化
    比如说[想把最近一周内有所变化的数据库对象全部输出到SQL脚本][把处于无效状态的程序进行再编译]等这种用本来写好的SQL角本可以做成的工作,也会因数据库对象的增加而变得很繁琐.对于这一点来说,Object Browser可以不用写任何SQL程序就可以对复数个对象执行某种特定处理,用户也可以任意加入新的机能.

图形化的数据库对象显示
    通过使用可设定的树状表示机能和可以任意排序显示的一览表机能,可以快速查找到目标对象.通过对象名和脚本的全文检索机能也可以实现各种精确查找及文字定位.

■对存储程序的支持
    过程及函数等存储程序,可以使用全屏幕编辑器进行制作和编辑.Object Browser的可以精确指出编译错误和运行画面的输入参数,执行时错误显示,以及支持DBMS-OUTPUT等机能让开发程序变得更简便.如果您使用的是Oracle8时,还可以利用更方便的DEBUG环境.
 
■强大的SQL执行机能
    用户使用Object Browser提供的全屏幕编辑器,可以很自由的输入SQL文并执行.结果也被很方便地显示在二维表中.如果允许,您可以直接在查询结果上进行数据编辑并反映到数据库中.
    另外,在显示结果的同时,SQL的执行计划和统计信息也被显示出来,这样您可以一边看着Oracle的内部优化算法,一边做出高效率的程序来.
    Object Browser也支持托拽机能.对已经保存好的SQL文件,无需触动键盘就可轻松执行.

■支持数据库管理员的机能
    Object Browser向您提供完整的图形界面完成用户,表空间,回滚段等的创建,编辑.另外,连接在服务器上的客户进程和表锁定等信息也展示在您面前.

■把数据库对象输出到角本文件
    Object Browser向您提供将数据库对象的定义输出到SQL角本文件的机能.输出的方式也有很多,比如将多个对象的定义输出成一个文件,输出不带用户名的对象定义,输出表时将数据输出成INSERT语句的形式等等.您使用这些机能,可以很方便的把现有的数据库系统移植到别的环境上,也可以起到备份的目的.

■对于用户,数据库对象的权限授予及显示机能
    Object Browser向您提供将用户,角色,数据库对象,系统权限等的列表显示及修改机能.并且支持对复数对象授权时成批操作.

■其他支持程序开发,数据库维护的方便机能
    使用[显示表和列]的机能将省掉您输入表名和列名的时间.
    使用[关联信息图]可以清楚的显示数据库对象间的相互调用关系.
    使用输出机能可以将数据图表通过OLE输出成Microsoft Excel文件.
使用[显示SQL语法]机能可以提示您所有SQL的书写方法,即使一时忘记了文法也没有关系.

■必须环境
可以运行 WINDOWS95 / 98 / 2000 或 WINDOWS NT 3.5 / 4.0 的个人电脑
32MB以上的内存(推荐48MB以上)
20MB以上的硬盘空间
Oracle7,8的客户端程序被正常安装,并且处于与Oracle服务器可以成功连接的状态.
很多关于asp的学习,很有帮助 基于ASP的学生信息管理系统的设计与实现 来源:中国论文下载中心 [ 08-11-24 09:11:00 ] 作者:admin 编辑:cw2112549 摘 要 由于学校规模进一步扩大,学生人数逐年上升,学生信息的管理也变得越来越复杂。为此,切实有效的把学生信息管理系统引入学校教务管理中,对于促进学校管理制度和提高学校教学质量有着显著意义。 本系统采用B/S结构,ASP为开发语言,SQL Server 2000为数据库来进行设计与开发。本论文,简要阐述了系统的开发背景与开发环境,对系统的构架进行分析,由此划分出各个模块,包括用户注册模块,用户登陆模块,个人管理模块,基本信息管理模块,特殊信息管理模块,毕业生信息管理模块,成绩管理模块,更多信息管理模块,退出系统模块。详细介绍了系统各个模块与功能的实现原理,最后总结开发阶段与测试阶段所遇到的问题与解决方法。 关键词:ASP;SQL Server 2000;B/S结构 1 引言 管理信息系统就是我们常说的MIS(Management Information System ),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的科学,它跨越了若干个领域,比如管理科学、系统科学、运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。 近年来Internet的飞速发展,Intranet技术得到了应用,为企业MIS提供了良好的支持环境。管理信息系统在企业的应用中存在三个要素,这就是人、计算机和数据。人是指企业领导者、管理人员、技术人员,以及MIS建设的领导机构和实施机构,他们必须有企业管理人员,尤其是企业领导的积极参与。计算机技术使MIS得以实施的主要技术。在这些技术中,软件开发是MIS开发的重点。第三个因素也不能忽视。企业的管理数据是MIS正常运行的基础。广义地说,各项管理控制是MIS的基础。是想要计算一台机床的成本,需要按时输入、每个零件以及每个螺钉螺母的费用,涉及企业的生产车间、采购、库房、 工艺设计和财务等多个部门,必须有一套管理制度作保证。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。目前,学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。尤其在管理成绩时,任务更加繁重,就成绩管理本身来说,它是一项任务繁重、时效性较强的系统工作,它不但涉及学生个人成绩查询,更涉及到各教师的工作效率和质量。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 现在我国的一些院校中的信息管理效率还不是很高,这样已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。所以,学生信息系统的设计与开发也是一个时代必经的阶段。本次设计主要采用B/S结构,主要实用于各高校的各专业,从学生入学到毕业每个人在校的信息,以及成绩的管理。本系统主要有六大模块,基本信息管理、特殊信息管理、毕业生信息管理、更多信息管理(补助信息管理、勤工助学信息管理、奖励信息管理、处罚信息管理、异动情况信息管理)、成绩管理、个人管理。用WindonwsXP为操作平台,ASP作为脚本语言,采用SQL Sever 2000作为数据库,用户可以实现对数据的录入,修改,删除等操作。 2 系统开发背景 随着科学技术的不断提高,目前,学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。由于上述原因,所以,学生管理系统的开发也是时代的一个必经阶段。本次设计主要采用B/S结构,从学生入学到毕业每个人在校的信息,以及成绩的管理。本系统主要分为六大模块,基本信息管理、特殊信息管理、毕业生信息管理、更多信息管理(补助信息管理、勤工助学信息管理、奖励信息管理、处罚信息管理、异动情况信息管理)、成绩管理、个人管理。用户可以对各种信息进行录入,修改,删除等操作
课程介绍你是否在寻找机会进入自动化测试领域? 你是否渴望学习selenium webdriver + Java以及最新的框架和技术进行web自动化测试? 你是否感兴趣学习Selenium如何用在你现有的项目里的? 这门课带你从Selenium搭建环境开始讲起,然后学习selenium,TestNG, logback, maven, jenkins。 我们假设学员没有任何自动化经验,来设计的这套课程。每个课题都从最基础的开始讲起。Selenium相关的该覆盖的课题都覆盖了。 例子都是来自于真实的web应用项目,帮助你理解不同的组件怎么用上自动化,这将展示给你一个行业层面的框架,增加自信心。 全网没有其他课程像这门课涵盖到如此之深的细节。 您将会学到什么 学完课程以后,你将拥有完整的Selenium Webdriver知识 你将具备从头开始设计Page Object、Page Factory、DATADRIVEN等搭建自动化框架的能力 用100多个实例对Selenium现实场景应用进行深入理解 全面了解TestNG, Maven, Jenkins, HTML报告,多浏览器并行测试 了解数据库测试和使用Selenium进行性能测试 你将彻底了解testNG框架 你从网上随便选择一个网站,都可以实现自动化,用所有可能的测试用例进行自动化测试 将提高你的编码技能,以编写最优化的自动化测试用例代码 你基本可以搞定任何Selenium面试,并能从设计阶段开始领导整个Selenium自动化项目 你应该能够使用应用程序的GUI来验证数据完整性 你将能够创建漂亮的报告来打动客户或领导 更深入地理解自动化指南和代码质量标准 会附带一个练习网站,可以用上所有可用的WebDriver功能,实现自动化 【适合人群】 软件手动测试人员想转为自动化测试的人员 自动化软件测试人员想加强专业技能的 刚毕业学生想从事软件行业 QA 组长或项目经理 【课程优势】 学完课程以后,你将拥有完整的Selenium Webdriver知识 【讲师介绍】 资质介绍: 12年以上软件测试工作经验,其中7年以上自动化测试开发经验 新书“Python3+Selenium3自动化测试项目实战”作者
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 5、运行时异常与一般异常有何异同? 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 7、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bea
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗?  基本数据类型包括byte、int、char、long、float、double、boolean和short。  java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。 8、运行时异常与一般异常有何异同?  异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 10、说出ArrayList,Vector, LinkedList的存储性能和特性  ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 11、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Ses

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧