2017-05-17 39 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。它可以免费使用。