我不仅尝试查询数据库中的不同表并将它们导出到 CSV,而且还尝试从多个表中导出数据并将它们作为列连接到此 CSV 中。
我从能够将表的内容假脱机到 CSV 文件的前提开始:
set colsep ','
set echo off
set feedback off
set linesize 1000
set sqlprompt ''
set headsep off
spool file.csv
select * from messages;
现在我想抓取多个表的某些组件但无济于事(使用联合和减号):
select col1, col2, col3 from messages
union
select col1, col2 from messagedata
union
select col1 from extradata;
在尝试上述方法时,我的ORA -1789 query block has incorrect number of result columns
意思是我正在尝试匹配错误的列数(我试图通过在输出中添加列来避免这种情况)。
并且给定联合或减号,它会在错误的数据类型上出错,但那是因为它只是试图将它附加到我的第一个查询的列中。
我的目标是创建一个产生类似输出的查询:
| col1(messages) | ... | col2(messagedata) | ... | col3(extradata) |
-----------------------------------------------------------------------
message ,... ,messagedata ,... ,extradata
message ,... ,messagedata ,... ,extradata
message ,... ,messagedata ,... ,extradata
所以两个问题:
我是否可以将多个表中的数据连接到上面的列输出中?就像创建新列输出而不是附加到现有列一样?
如何在列顶部为我的数据(自定义或已由表中的标识符定义)提供标题?