某些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
答案 0 :(得分:0)
对于大多数数据库工作,您应该在图形化IDE中使用工作表,而不是在命令行实用程序中使用脚本。
我将在这里走到一边,猜测这是一个巨大的XY problem-您正在寻求有关尝试的解决方案而不是实际问题的帮助。您是从事性能调整和数据分析的DBA,并且您正在尝试使用SQL * Plus来理解大量未知数据。但是SQL * Plus永远不会是完成该工作的好工具。
您不必完全放弃SQL * Plus。对于脚本化安装,快速更改或创建易于验证的测试用例,它仍然是一个有用的程序。但是1980年代的程序无法始终处理我们在2019年使用的大量数据。
当我们在V$SQL
中寻找性能问题时,通常是在寻找“错误”的东西。我们不知道那是什么提前。 V$SQL
中有98列,其中之一是巨大的CLOB。如果没有某种类型的图形程序,可以让我们滚动浏览结果,然后单击并扩展大值,那么根本无法轻松地调查该表。对于许多任务,像这样的简单界面比命令行好一千倍:
我之所以这样说并不是因为我是一个很棒的DBA,拥有比其他任何人都更多的技能。我之所以这样说,是因为我与DBA一起工作,而DBA对Oracle的了解比我多得多,但由于他们仅使用老式工具,所以他们无法跟上我的步伐。
(如果我离开了,并且出于正当理由需要此解决方案,我将删除此答案。但是请在问题中准确说明为什么需要此解决方案。)