2009-07-14 48 views
4

我不熟悉Oracle平台(主要使用MySQL,也有一些Postgres和SQL Server)。我最近发现以下语句SQL Plus和“常规”SQL之间的区别?

DESC TABLE_NAME; 

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

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TABLE_NAME' 

改为。

根据我的理解,这是因为“DESC”语句是SQL * Plus应用程序中的一个附件。

我的问题是

  1. 我的理解是正确的,或者是有准备的东西更加微妙?
  2. SQL * Plus还有哪些其他特殊功能?
  3. 当我开始加速Oracle时,是否有办法关闭这些特殊添加项?
  4. 赞赏来自vetrans平台的Oracle newb的其他一般建议。

回答

11
  1. 是的。 SQL * Plus是一个客户端工具。 SQL实际上是在服务器上运行的。
  2. 文档的SQL * Plus是herehere很多“扩展”是相关的介绍(如屏幕有多宽)
  3. 没有真正在SQL * Plus。如果你长时间使用SQL * Plus,你很快就会发现你真的需要能够改变默认的行大小,页面大小,列大小,数字格式...
  4. 个人而言,虽然很高兴知道如何要在SQL * Plus中执行某些操作,其中一个GUI客户端工具可能会更容易。就我个人而言,我使用SQL Squirrel来处理大部分内容,并且使用我最喜欢的编辑器和用于PL/SQL程序开发的SQL * Plus。
+1

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