Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何实施";“文本导入向导”;shell脚本中excel的功能_Oracle_Shell_Excel 2007 - Fatal编程技术网

Oracle 如何实施";“文本导入向导”;shell脚本中excel的功能

Oracle 如何实施";“文本导入向导”;shell脚本中excel的功能,oracle,shell,excel-2007,Oracle,Shell,Excel 2007,我尝试从shell脚本生成excel工作表。这必须包含查询的结果 我确实得到了一份excel表格。但是当我打开它时,列并没有分开,而是查询输出的所有字段都出现在第一列中 例如: 下面粘贴的是查询的结果。当我直接将其粘贴到excel中而不导出时,它们将被放置在excel的第一列中 在MS Excel 2007中,我们将获得“粘贴选项”,在该选项中,我们可以选择“使用文本导入向导”在Excel中将字段分隔为列 我需要通过shell脚本实现这个功能 你能帮我解决这个问题吗 COL1

我尝试从shell脚本生成excel工作表。这必须包含查询的结果

我确实得到了一份excel表格。但是当我打开它时,列并没有分开,而是查询输出的所有字段都出现在第一列中

例如:

下面粘贴的是查询的结果。当我直接将其粘贴到excel中而不导出时,它们将被放置在excel的第一列中

在MS Excel 2007中,我们将获得“粘贴选项”,在该选项中,我们可以选择“使用文本导入向导”在Excel中将字段分隔为列

我需要通过shell脚本实现这个功能

你能帮我解决这个问题吗

COL1                   COL2 COL3                   
---------------------- ---- ---------------------- 
12                     a    1                      
198                    b    2                      
159                    ast  3                      
434                     rd  4                      
56                          5                      
1031                        6  
谢谢,
Savitha

假设您可以生成一个
.csv
文件,您的查询只需将字段与逗号(或其他分隔符,如果您愿意)连接在一起;比如:

select col1 ||','|| col2 ||','|| col3
from my_table
where ...
如果任何列可能包含逗号,则可以将其括在双引号中,以便Excel不会将一个值视为多个列:

select '"'|| col1 ||'","'|| col2 ||'","'|| col3 ||'"'
from my_table
where ...
从Oracle的角度来看,这将成为一个单一的结果列,这意味着您的列标题将不会按您所希望的那样显示。假设需要它们,则需要单独生成它们(在实际查询之前):


您可能还需要调整一些SQL*Plus设置,如
设置嵌入
设置行大小
设置页面大小
设置反馈关闭
。。。等,使其看起来完全正确。

您必须创建一个本机Excel文件(.xls或.xlsx等),还是可以生成一个CSV文件?我可以生成.CSV格式的文件。在csv文件中,字段是分开的,但我尝试以相同的格式生成xls。它不起作用。我们不能在xls中实现这个功能吗?如果你真的需要它作为.xls,看看上面的答案是否对你有帮助。没有专门生成.xls文件的内置方法,但是XML路径看起来很有前途。如果合适的话,您还可以在shell脚本中对CSV文件进行后期处理;谷歌
csv2xls
(我不能保证任何结果!)。
select 'COL1,COL2,COL3' from dual;
prompt COL1,COL2,COL3