2014-05-24 368 views
1

我使用Oracle SQL Developer脚本来执行SELECT,在查询结果窗口中显示结果。然后,我将结果复制/粘贴到Excel模板中进行报告。Oracle SQL Developer - 使用PLSQL在查询结果窗口中显示SELECT输出

我想用PLSQL块替换脚本,以允许循环等。问题在于简单的SELECT FROM(没有INTO)在PLSQL中似乎不起作用。

是否有任何方法可以使用PLSQL在窗口中显示选择结果,我可以从中复制/粘贴?

注意:我不允许使用EXPORT直接创建文本文件,这比复制/粘贴好得多。还有一个标准的Oracle软件包直接从PLSQL输出到文件,但我也不能使用它。

这篇文章被标记为另一篇文章的副本,其中一篇文章询问如何从不在PL/SQL块中的SELECT获取输出。我知道如何做到这一点,事实上这正是我目前正在做的,正如我在OP中提到的那样。正如我所说,没有INTO的SELECT在PL/SQL中失败。

+0

我链接到的线程没有回答上面的问题,但它回答了你应该问的问题:我如何从SQL Developer获取数据到Excel中。我不确定实际上有多少限制,但是生成CSV输出的技巧可以将'n'paste'切割成文本文件,然后您可以在Excel中打开该文本,这种技术几乎适用于所有场景。 – APC

回答

0

您可以创建一个临时表:

CREATE GLOBAL TEMPORARY TABLE table_name (
    (column1 datatype null/not null, 
     column2 datatype null/not null, 
     ... 
) ON COMMIT DELETE ROWS; 

然后在每个循环中,您可以在其中插入您的数据:

INSERT INTO table_name 
    (SELECT statement); 

最后,你可以使用select语句的临时表中读取数据:

SELECT * FROM table_name 

,然后删除表:

drop table table_name; 
+1

这不回答这个问题。这也不是Oracle语法,所以这种方法可能适用于您使用的任何数据库。创建永久数据库对象并不是解决像这样的接口问题的最佳方式。 – APC

+0

你说得对。所以我纠正了我的答案。谢谢你的评论。 –

+0

我很欣赏答案,但不幸的是,它不回答这个问题,我可能没有解释清楚。 SELECT * FROM table_name;命令不能从PL/SQL运行,所以它会把我放在完全相同的地方。 – user2781942

相关问题