SQL*PLUS for Oracle 有啥好的替代品吗?

Posted

技术标签:

【中文标题】SQL*PLUS for Oracle 有啥好的替代品吗?【英文标题】:Is there a good alternative to SQL*PLUS for Oracle?SQL*PLUS for Oracle 有什么好的替代品吗? 【发布时间】:2010-09-22 02:44:32 【问题描述】:

我不喜欢使用 SQL*PLUS 作为 Oracle 的接口。我通常使用yasql,但它自 2005 年以来一直没有更新,并且可以进行一些改进。快速 Google search 显示 yasql 和 SQLPal。我使用的是 linux,所以 SQLPal 不是一个选项。

是否有任何替代方案,或者我是否坚持使用我不喜欢的界面或不再维护的界面?

【问题讨论】:

sqlplus 是 CLI,看我的评论bellow 请查看dbForge Studio for Oracle,这是一个用于Oracle 管理、管理和开发的强大GUI 工具,它可以在Windows 下完美运行,并提供30 天免费试用版和免费Express 版。 【参考方案1】:

我假设您想要一种低开销的查询方法,但想要比 SQL*Plus 提供的更多功能?为什么不使用 Oracle 的SQL Developer?它是免费的。

安装,与您的数据库建立新连接,然后开始输入脚本。按 F5 运行它(或只运行您突出显示的部分脚本)。

【讨论】:

我在这方面有点晚了,但正如在答案的 cmets 中提到的,第二多的赞成票(Dan Vinton)有 rlwrap。 rlwrap 使用 Ctrl-R (reverse-i-search) 提供任何应用程序命令行历史记录。然后还有 SQLcl oracle.com/database/technologies/appdev/sqlcl.html 。使用 SQLcl,您不需要安装 SQL-net/SQL-home.... 观看视频。它具有自动完成功能、就地编辑缓冲区和智能格式。【参考方案2】:

看看gqlplus。它在 linux 上包装了 sql*plus,并通过添加命令历史记录、表名完成等内容使其更加用户友好。

【讨论】:

这确实是一个非常好用的工具。现在 sqlplus 只需要在默认情况下像 mysql 一样聪明地处理列大小...... 我更喜欢在 SQL*Plus 周围使用rlwrap 来获得命令历史记录和体面的编辑。【参考方案3】:

Emacs 可以提供比默认 SQL*Plus 命令行界面更强大的文本编辑特性和功能。

这里有一些关于如何使用 Emacs 作为 SQL*Plus 包装器的链接:

Emacs and Oracle EmacsWiki:SqlPlus

【讨论】:

【参考方案4】:

TOAD 相当昂贵,但您可以从 Quest 网站下载 90 天试用版,看看它是否具有您想要的功能集(不要被“免费软件”标题所迷惑 - 它只有 90 天免费,然后过期,这绝对是共享软件):

http://www.toadworld.com/Freeware/ToadforOracleFreeware/tabid/558/Default.aspx

另一个选项是我在 CodeProject 上看到的一个工具:

http://www.codeproject.com/KB/database/OQuery.aspx

它在 .NET 中,所以你必须看看它是否在 Mono 上编译,但它可能值得一试。我没有使用过任何一种工具(Toad 或这个),因为我是一名 SQL Server 人员,但我听说过关于 Toad 的好消息。

【讨论】:

TOAD+1,比 Oracle 的 SQL Developer 更好,但没有免费版本。您链接到的是一个 60 天的试用版。 quest.com/toad-for-oracle 是实际的产品页面。 嗯 - 你是对的,这根本不是免费软件,尽管他们在 Quest 网站上这样称呼它大约十多次。我已经更新了帖子。 TOAD 以前是免费软件,后来 Quest 从作者那里购买并产品化了。【参考方案5】:

如果你想要的是命令行,我建议rlwrap 与 sqlplus 一起使用;它为您提供行编辑功能和命令历史记录,使 sqlplus 成为一个有点可用的工具。

【讨论】:

rlwrap(您的链接似乎已损坏)建议socat。我建议socat READLINE,history=$HOME/.sqlplus_history EXEC:'sqlplus64\ USER\/PASS@HOST\:PORT\/SID',pty,setsid,ctty【参考方案6】:

你可以试试allroundautomations的PL/SQL developer,有试用版,价格比TOAD低很多。

问候 克

【讨论】:

【参考方案7】:

看看Senora。该工具是用 Perl 编写的,因此是跨平台的。此外,Senora 是免费的、可扩展的,旨在成为您的主要 Oracle shell。您可以通过提供自己的插件轻松扩展 Senora。 Senora 尝试提供比 sqlplus 更友好的输出格式。列往往只有真正需要的宽度。

另一个有趣的选择是SQLcl。它提供内联编辑、语句完成、命令调用、DBA 内容(例如启动、关闭),还支持您以前编写的 SQL*Plus 脚本。

【讨论】:

【参考方案8】:

这取决于你在寻找什么。 如果它是一个 GUI 查询工具,那么 Oracle 有他们的免费 SQL Developer 产品(尽管它占用了大量资源)。还有一些免费的跨数据库的。我自己喜欢 SQUirrel SQL 客户端。还有 DBVisualiser 和其他一些。 JEdi​​t 是一个具有 DBConsole 插件的编辑器,用于运行数据库查询和 DML/DDL。 它们都是基于 java 的,所以在大多数地方都可以运行。

如果您喜欢命令行,请查看 sqlpython(开发人员已经确定了其他几个 too)

【讨论】:

【参考方案9】:

我喜欢SQL Developer。它是免费的,具有直观的 UI,可在 Windows、Mac 和 Linux 上运行。还支持很多sql*plus命令,支持版本控制

【讨论】:

【参考方案10】:

TOAD 的开源版本是 TORA: tora.sourceforge.net

【讨论】:

【参考方案11】:

如果你是 VIM 类型的人,那么我会考虑 Vorax。它基本上是一个围绕 SQL*plus 的 VIM 包装器。

【讨论】:

很遗憾,您与 vorax 的链接已失效 幸好有search engines【参考方案12】:

使用过 Toad 和 SQL Navigator,我喜欢 SQL Navigator 的稳定性。

【讨论】:

【参考方案13】:

我喜欢 sqlsh

alias sqr='sqlsh -d DBI:Oracle:MYSERVER.COM -u USER -p PASSWORD'

【讨论】:

【参考方案14】:

如果您可以购买许可证,则可以从任务软件中获得蟾蜍

sql 松鼠如果你不能。

【讨论】:

【参考方案15】:

我将自己的工具ocimlsh 与rlwrap 结合使用。

【讨论】:

【参考方案16】:

我只是使用socat 将readline 支持添加到sqlplus。历史记录和有效的退格键实际上将 sqlplus 变成了一个相当不错的工具。

在我的.bashrc中:

function sqlplus 
        socat READLINE,history=$HOME/.sqlplus_history EXEC:"$ORACLE_HOME/bin/sqlplus $(echo $@ | sed 's/\([\:]\)/\\\1/g')",pty,setsid,ctty
        status=$?

您可能会看到 别名 sqlplus 到 socat 的替代方法,但您很快会发现这样做会阻止您使用各种命令行选项调用 sqlplus。

CAVEAT:确保将 $HOME/.sqlplus_history 权限设置为 0600。您输入的密码最终会出现在历史文件中。您也可以考虑将cat /dev/null > $HOME/.sqlplus_history 添加到您的.bash_logout

【讨论】:

【参考方案17】:

显然,Oracle 本身已经淘汰了 sql*plus 并用 SQLcl 取而代之,后者支持更现代的功能,例如历史记录、格式化等:https://www.oracle.com/database/technologies/appdev/sqlcl.html。

【讨论】:

以上是关于SQL*PLUS for Oracle 有啥好的替代品吗?的主要内容,如果未能解决你的问题,请参考以下文章

oracle上亿表海量数据进行大批量数据删除有啥好的解决方案

SQL2005在附加数据库的时候出现无法打开物理文件,操作系统拒绝,这是怎么回事?有啥好的方法可以解决?

python里边如果是字符串很长 各位有啥好的主意美观一点吗?

ruby 中有啥好的 OpenDocument 库吗?

类助手有啥好的用途?

JQOM 有啥好的参考吗?