我目前正在使用Toad来处理我们的数据库(查询,更新,小脚本,浏览数据库对象等)的日常工作.
我的问题是:因为我的Toad版本是旧的和有缺陷的,这是Toad的(可能是免费的,但不一定是)替代品?
我们使用的数据库版本是10g和9i.
非常感谢.
Oracle的SQL Developer.
来自http://www.allroundautomations.nl/的 PL/SQL Developer .在Toad和PL/SQL开发人员之间进行选择时,大约一半的开发人员更喜欢PL/SQL开发人员.我不得不承认PL/SQL开发人员的代码完成要好得多,但我仍然更喜欢Toad用于DBMS管理功能.
托拉是另一个不错的选择.我多年来一直使用预GPL版本.对于Oracle来说,这是一个很好的简单SQL工具.
它支持模式浏览,分析计划,有限的调试以及您期望的所有内容.
在尝试了几个月的其他产品之后,我又回到了Toad.
而且我必须承认(恕我直言,以及我正在使用它的类型):我找不到Toad的替代方案.
其他产品中缺少的必不可少的功能包括:
速度.蟾蜍非常快; 如果您打开超过2或3个连接,SQL Developer将开始爬网.当你必须在时间限制下运行时,你真的无法等待SQL Developer打开.
"在提交之前打开一个新窗口"功能(在插入或更新语句之后打开一个新窗口,并且您被迫提交或回滚).非常方便避免待处理的提交.
"执行当前语句"功能(shift-F9).SQL Developer没有它,或者您被迫选择要执行的查询.
我使用过Squirrel-SQL(基于Java/JDBC的程序,可以使用任何提供驱动程序的操作系统或数据库)和Eclipse的数据库开发工具(Eclipse-DTP).两者对于轻型数据库工作肯定是足够的.两者都是免费和开源的.
我很惊讶没有人提到过DbVisualizer.我们公司已经使用它几年了,每个人似乎都很满意.它功能强大,可在多个平台(基于Java)上运行,并支持不同的数据库系统(Oracle,DB2,MS Access等).它有一个免费版本; 如果您需要更多功能,可以使用商业版.
简单回答:
使用Textpad或其他文本编辑器.
说明:
对我来说,PL/SQL开发是一个随着时间的推移而发展的过程.我已经尝试将持续改进应用于SQL开发,并且它对我来说非常好.(有关持续改进的更多信息/ Kaizen请参阅链接文本)
我发现PL/SQL IDE工具不稳定.
我曾经遇到过Quest Software的TOAD以及Quest Software的SQL Navigator(我从版本3开始使用它)的几次崩溃.
我失去了工作.
我尝试了其他IDE PL/SQL工具.
这些工具也崩溃了.
我又失业了.
我很沮丧.
我不相信任何PL/SQL IDE工具的PL/SQL软件开发.
以下是我的PL/SQL编码核心实践:
1.使用Quest Software TOAD导出代码
2.使用Cygwin bash脚本将文件移动到相应的目录中
3.通过BeyondCompare比较版本(如果需要)
4.检查WinCVS /中的代码CVSNT(如果需要)
5.使用TextPad编辑
6.通过BeyondCompare比较版本(如果需要)
7.将代码检入WinCVS/CVSNT(如果需要)
8.使用Cygwin bash脚本创建主更改文件.
9.使用Quest Software TOAD导回代码
一个更冗长的解释:
我使用Quest Software TOAD将所有PL/SQL和表DDL代码导出到文件系统.
在数据库菜单 - >导出 - >源代码
在数据库菜单 - >导出 - >表脚本
这将获取每个数据库对象的单个文件.
我
根据文件扩展名将这些文件(Cygwin bash脚本)移动到目录中.
*
/ functions*.pnc文件/.*.pks中的.prc文件//
procudres中的*.pkb文件
/触发器中的.trg文件
/ views
中的.vw
文件/ table_scripts中的.sql文件这些文件最初是签入CVS.
(我使用WinCVS/CVSNT服务器端)
I Beyond将TOAD导出的每个文件版本
与CVS中已有的版本进行比较.
我确保CVS sql存储库是最新的.
换句话说,我需要一个良好的起始基线.
然后我使用TextPad编辑PL/SQL代码.
链接文本
我预先配置我的Textpad与SQL语法文件,
以使眼睛
链接文本更容易
编辑后,我超越比较
导出与
WinCVS 版本导出的每个编辑文件版本.
幸运的是,WinCVS允许您使用
非常方便的外部差异(Beyond Compare).
我通过TOAD将新的/更改的代码加载到测试模式.
在SQL编辑器菜单中 - >加载并执行脚本文件
我测试代码.(做一些调试运行)
如果代码测试出来,我会将代码检查到CVS中.
最后,我使用Cygwin bash(以及我编写的bash脚本)来创建主更改文件.此主更改文件包含需要应用的所有更改,以使实时架构保持最新.这节省了我很多时间.
然后我通过TOAD将新的/更改的代码加载到实时模式.在SQL编辑器菜单中 - >加载并执行脚本文件.就是这样.软件工程涉及流程,版本控制(CVS)和自动化构建(bash脚本).
所有这些中最大的教训(使我的工作效率提高了10倍)是从基于DB的PL/SQL IDE切换到简单的ASCII文本文件.KIS在行动.
如果您的代码所在的副本存在于ASCII文件中,则可以避免:
- 删除数据库
- 锁定数据库对象
- 如果是基于数据库的修订控制工具(如果有的话)
- 如果有数据库差异工具(如果有的话)
- 由于IDE崩溃而丢失代码
- 由于数据库崩溃/关闭而
丢失代码 - 由于并发编辑而导致代码丢失(如果两个或多个PL/SQL开发人员编辑相同的过程,则可能会发生这种情况)
相反,如果您处理文件系统ASCII文件中的所有PL/SQL代码,那么
- 您的选择文本编辑器(TextPad,notepad ++,vi等)
- 您选择的版本控制系统(CVS,svn)
- 您选择的文本过滤/处理/脚本系统(我喜欢Cygwin bash)
- 您选择的diff工具(Beyond)比较,WinDiff,差异)
- 您选择的数据库工具(我可以使用TOAD,SQL Navigator)将PL/SQL代码导入和导出到文件.
我想要所有代码更改的版本历史记录.
我希望让每个人一起工作,防止开发人员踩到彼此的脚趾.
我想要自由选择我的工具.
这样做的副作用是我在快速开发期间处理文件系统中的所有数据库代码.
只需2美分.