假设我有一个名为c:\test.sql的sql脚本,其内容如下:;
select * from sales group by order_id;
我希望能够在另一个查询中使用该脚本。
例如:
select * from (c:\\test.sql) where rownum <= 100;
请注意,我已经尝试了@和@运算符。而且不能通过简单的示例完成任务,因为这些操作符单独执行脚本,并且不能应用我需要的嵌套查询,而不是嵌套脚本。
我也不想在数据库中创建任何对象作为中间表和视图。
这有可能吗?
我使用的是exaplus版本6.0.5,它有自己的@版本,而不是sql*plus。
2条答案
按热度按时间xqkwcwgp1#
首先,你需要移除
;
从包含查询的脚本中,需要简单的脚本:顺便说一句,我经常在sql*plus、sqlcl或sqldeveloper中对高级脚本使用@/@:http://orasql.org/2013/03/29/sqlplus-tips-1/
http://orasql.org/2013/04/17/sqlplus-tips-4-branching-execution/
例如,您还可以使用相同的方法读取脚本内容:
正在将tmp.sql读入替换变量sfile:
tmp.sql:
例子:
结果:
kfgdxczn2#
您可以使用一个内嵌视图重写查询,如下所示。
它不会创建任何中间视图对象