仅显示行中的填充列

时间:2019-05-16 01:24:13

标签: sql oracle plsql

某些Oracle V $和DBA_ *表具有大量列;在某些情况下,只会填充很少的列。

示例

         Col_1    Col_2   Col_3 .... Col_10     Col_11
          XX       YY     NULL        NULL        mm
          XX2      YY2    NULL        NULL        mm2

此表上方有11列,但只有3列(col_1,Col_2和Col_11)具有值。

是否存在可用的脚本或实用程序,当显示数据时,该脚本或实用程序会切换(HIDES / SHOWS)NULL列,如下所示:

 null_column = HIDE 

 Col_1  : XX
 Col_2  : YY
 Col_11 : mm

 <blank line>

 Col_1  : XX2
 Col_2  : YY2
 Col_11 : mm2

 null_column = SHOW

 Col_1  : XX
 Col_2  : YY
 Col_3  : NULL
 Col_4  : NULL
 Col_5  : NULL
 Col_6  : NULL
 ............
 Col_11 : mm

1 个答案:

答案 0 :(得分:0)

对于大多数数据库工作,您应该在图形化IDE中使用工作表,而不是在命令行实用程序中使用脚本。

我将在这里走到一边,猜测这是一个巨大的XY problem-您正在寻求有关尝试的解决方案而不是实际问题的帮助。您是从事性能调整和数据分析的DBA,并且您正在尝试使用SQL * Plus来理解大量未知数据。但是SQL * Plus永远不会是完成该工作的好工具。

您不必完全放弃SQL * Plus。对于脚本化安装,快速更改或创建易于验证的测试用例,它仍然是一个有用的程序。但是1980年代的程序无法始终处理我们在2019年使用的大量数据。

当我们在V$SQL中寻找性能问题时,通常是在寻找“错误”的东西。我们不知道那是什么提前。 V$SQL中有98列,其中之一是巨大的CLOB。如果没有某种类型的图形程序,可以让我们滚动浏览结果,然后单击并扩展大值,那么根本无法轻松地调查该表。对于许多任务,像这样的简单界面比命令行好一千倍: enter image description here

我之所以这样说并不是因为我是一个很棒的DBA,拥有比其他任何人都更多的技能。我之所以这样说,是因为我与DBA一起工作,而DBA对Oracle的了解比我多得多,但由于他们仅使用老式工具,所以他们无法跟上我的步伐。

(如果我离开了,并且出于正当理由需要此解决方案,我将删除此答案。但是请在问题中准确说明为什么需要此解决方案。)