我使用sqlplus输出表的内容:
select * from my_table;
输出类似于:
ID
-------------
FIELD1
----------------
FIELD2
----------------
someid
field 1 content
field 2 content
我尝试了很多页面格式化选项的组合。我可以通过设置head
,pages
,termout
,echo
,feed
和linesize
来格式化表格中的输出。
但我想以(键,值)方式输出值,如下所示:
ID = someid
FIELD1 = field 1 content
FIELD2 = field 2 content
分隔符和格式不重要,只要每行有一列。
是否可以只使用sqlplus?我想避免编写脚本。在这个特定的机器上(我无法安装任何设备)我只有bash,perl和Python 2.4。
答案 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"