我正在尝试将多个表中的数据导出为自定义管道分隔的文件格式。我能够从单个表生成管道分隔的文件,但无法实现所需的自定义格式。
以下是格式:
HD|034567|24052021092630|1.0
3|||||0|0|12345678909|2|SDATA|DNAME||||TBD|||M|||||||||||||||||
3|||||0|0|12345678910|1|SDATA|DNAME||||TBD|||F|||||||||||||||||
3|||||0|0|12345678911|5|SDATA|DNAME||||TBD|||M|||||||||||||||||
FT|000000003
其中以HD
开头的first row
来自单独的表,最后一个来自硬编码,中间行中的数据来自主表。如何使用SPOOLSQL*PLUS或任何其他更适合场景的实用程序生成这种格式的.dat文件。
谢谢
您发布问题已经5个小时了,还没有回复也许这意味着你不能按照计划的方式去做。
"琐碎的";解决方案是使用3个SELECT
语句和一个UNION ALL
,例如
select 'HD', col1, col2, col3 from table_1
UNION ALL
select number of columns from table_2
UNION ALL
select 'FT', 000000003 from dual
但它不会工作,因为
- 列数不匹配
- 数据类型可能也不匹配
您可以运行3个单独的select
语句,但其间会有空行。
因此,考虑切换到PL/SQL和UTL_FILE包来创建这样的文件。