2

我正在使用 sqlplus 输出表的内容:

select * from my_table;

输出类似于:

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

我尝试了许多页面格式选项的组合。head我可以通过设置、pagestermoutecho和来格式化表格中的feed输出linesize

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

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

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

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

4

1 回答 1

4

我不知道有任何 SQLPlus 设置可以为您提供这种格式,但可以通过蛮力来实现。像这样的东西应该工作:

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

附录OP 询问是否可以在 SQLPlus中创建CHR(10)该值。COLSEP我最初认为“没办法”,但偶然发现了这个 StackOverflow关于如何将 设置COLSEP为选项卡的答案,并将其修改为CHR(10). 我不太明白它是如何/为什么工作的,但它确实有效:

col NEWLINE# new_value NEWLINE NOPRINT
select chr(10) NEWLINE# from dual;
set colsep "&NEWLINE"
于 2013-07-19T15:00:46.650 回答