2017-05-17 71 views
-1

我是oracle的新手(或者一般的SQL),並試圖完成任務。 在MS SQL Server中,我可以做select * from tablename;,它以列表格式顯示所有數據。如果我在Oracle中這樣做,它會以難以閱讀的奇怪格式顯示數據,除非我專門選擇了我想要的列。如何將Oracle表顯示爲表?

有沒有一種方法可以像常規MSSQL格式那樣在Oracle中顯示數據?

我環顧四周,人們說要使用SHOW COLUMNS FROM TABLENAME;,但這給了我一個錯誤,說「未知選項」。我可以做Desc tablename但只給我元數據。

+2

[如何更清晰地顯示錶格數據。在oracle sqlplus](http://stackoverflow.com/questions/3006431/how-to-display-table-data-more-clearly-in-oracle-sqlplus) –

+1

Oracle數據庫只負責返回您的結果'SELECT * FROM tablename'。您正在使用的客戶端程序的責任是在屏幕上顯示這些結果,如果這是您想要的。你在使用哪個客戶端程序?大多數GUI客戶端SQL * Developer,SQL * Navigator,TOAD等將很好地顯示結果。 SQL * Plus更加困難,需要大量設置來定義列寬,線寬,頁面大小等。也許,許多開發人員使用GUI客戶端的原因之一。 –

+0

與SQL Server不同,您需要在使用過程返回記錄集時使用refcursors。 HTTPS://www.akadia。com/services/ora_return_result_set.html – xQbert

回答

2

歡迎來到Oracle!

作爲新用戶,我們有2個命令行界面。這聽起來像你正在使用SQL * Plus。我們也有一些叫做SQLcl的東西。

後者包含自動輸出格式,因此您不必在命令中執行諸如「行大小」或「格式」之類的操作來獲取可讀的查詢結果。從Oracle

enter image description here

+1

謝謝,這是我所需要的 – polaris

0

使用下面的查詢,使用的解決方案2,如果你不知道確切的表名:

--Solution1

select column_name,table_name from all_tab_cols where table_name='table_name' 

--Solution2

select column_name,table_name from all_tab_cols where table_name like '%table_name%' 
0

我認爲你正在使用SQLPlus窗口查看輸出。你必須格式化才能看到好的。 第一個

set linesize 5000; 

該命令將使您的行足夠長,以容納列。您需要根據需要增加或減少號碼。

Set pagesize 100; 

這裏,100是一個頁面中顯示的記錄數。

此外,數據庫中的某些列長度非常大。您需要格式化顯示這些特定列以顯示爲簡短。

COLUMN Column_NAME FORMAT A10; 

這裏,a10是該列的十位數字。

0

下載的SQLDeveloper。它可以免費使用。