2009-07-14 50 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