SQL Plus 和“常规”SQL 之间的区别?

Posted

技术标签:

【中文标题】SQL Plus 和“常规”SQL 之间的区别?【英文标题】:Differences between SQL Plus and "regular" SQL? 【发布时间】:2010-11-10 20:20:41 【问题描述】:

我是 Oracle 平台的新手(主要使用 mysql,也有一点 Postgres 和 SQL Server)。我最近发现了以下语句

DESC TABLE_NAME;

仅适用于我用来测试查询的 SQL*Plus 工具。当我使用 php 的标准函数连接到 oracle 数据库时,它将不起作用。我需要使用类似

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TABLE_NAME'

改为。

据我了解,这是因为“DESC”语句是 SQL*Plus 应用程序中的附加组件。

我的问题是

    我的理解是正确的,还是发生了更微妙的事情? SQL*Plus 还有哪些特别的附加功能? 在我快速了解 Oracle 时,有没有办法关闭这些特殊添加? 感谢平台 vetrans 对 Oracle 新手的任何其他一般性建议。

【问题讨论】:

【参考方案1】:
    是的。 SQL*Plus 是一个客户端工具。 SQL 是实际在服务器上运行的。 SQL*Plus 的文档是 here 和 here 很多“扩展”都与演示相关(例如您的屏幕有多宽) 在 SQL*Plus 中并非如此。如果您长期使用 SQL*Plus,您很快就会发现您确实需要能够更改默认行大小、页面大小、列大小、数字格式... 就个人而言,虽然知道如何在 SQL*Plus 中做事是件好事,但其中一种 GUI 客户端工具会容易得多。就我个人而言,我使用 SQL Squirrel 处理大多数东西,我最喜欢的编辑器和 SQL*Plus 用于 PL/SQL 程序开发。

【讨论】:

1/ 或更具体地说,SQL 是服务器理解并用于返回结果的语言。所以你只能从 PHP 运行 SQL 查询。 Oracle 理解标准 SQL,但确实有一些它自己的扩展...... DESC 只内置在 sql*plus 中。 4/ 如果你在没有像我这样的 GUI 工具的情况下在 Linux 或 Solaris 上工作,那么你可能会被使用 sqlplus 卡住。默认情况下,sqlplus 不是最后输入命令的旧向上箭头。如果您下载/构建并安装 rlwrap 库,那么您可以使用 rlwrap sqlplus 运行 sqlplus ... 还有 gqlplus 但您的里程可能会有所不同。

以上是关于SQL Plus 和“常规”SQL 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis Plus注入全局操作踩坑

oracle的常规操作(基本命令)

SQL*PLUS的相关命令

SQL注入绕过防火墙的9种基本方法

SQL和T-SQL之间的区别

Mybatis-Plus和Mybatis的区别