使用sqlplus输出键,值对

时间:2013-07-19 14:50:33

标签: oracle sqlplus key-value

我使用sqlplus输出表的内容:

select * from my_table;

输出类似于:

ID
-------------
FIELD1
----------------
FIELD2
----------------
someid
field 1 content
field 2 content

我尝试了很多页面格式化选项的组合。我可以通过设置headpagestermoutechofeedlinesize来格式化表格中的输出。

但我想以(键,值)方式输出值,如下所示:

ID = someid
FIELD1 = field 1 content
FIELD2 = field 2 content

分隔符和格式不重要,只要每行有一列。

是否可以只使用sqlplus?我想避免编写脚本。在这个特定的机器上(我无法安装任何设备)我只有bash,perl和Python 2.4。

1 个答案:

答案 0 :(得分:4)

我不知道任何可以获得此格式的SQLPlus设置,但可以通过强力实现。这样的事情应该有效:

SELECT
  'ID = ' || id || CHR(10) ||
  'FIELD1 = ' || field1 || CHR(10) ||
  'FIELD2 = ' || field2
FROM my_table

附录 OP询问是否可以在SQLPlus中使CHR(10) COLSEP值。我最初认为“没办法”,但偶然发现this StackOverflow answer关于如何将COLSEP设置为标签,并将其修改为CHR(10)。我不太明白它是如何/为什么有效,但确实有效:

col NEWLINE# new_value NEWLINE NOPRINT
select chr(10) NEWLINE# from dual;
set colsep "&NEWLINE"