在pl/sql中使用子查询块
我有一个大型SQL脚本,它由与此类似的子查询块组成在pl/sql中使用子查询块,sql,oracle,plsql,subquery,Sql,Oracle,Plsql,Subquery,我有一个大型SQL脚本,它由与此类似的子查询块组成 WITH get_some_data AS ( SELECT * FROM table1 inner join table1.row2 r2 on table2.row2 ) 然后在“main”查询中调用此块 SELECT Row3 FROM get_some_data; 问题是我想将这段代码转换为pl/sql,这样我就可以捕获主查询,但这会导致子查询失败,因为它需要一个“SELECT-INTO”而不是一个SELECT 我并没有错过一些
WITH get_some_data AS (
SELECT *
FROM table1
inner join table1.row2 r2 on table2.row2
)
然后在“main”查询中调用此块
SELECT Row3
FROM get_some_data;
问题是我想将这段代码转换为pl/sql,这样我就可以捕获主查询,但这会导致子查询失败,因为它需要一个“SELECT-INTO”而不是一个SELECT
我并没有错过一些简单的步骤来强制查询在没有'INTO'子句的情况下运行,对吗?
如果不是的话,有什么方法可以简化子查询块到pl/sql的转换?没有它们,查询运行速度非常慢。我不确定您要的是什么,但如果您想将CTE转换为PLSQL,下面是一个示例
BEGIN
FOR i IN (WITH get_some_data
AS (SELECT row3
FROM table1
inner join table1.row2 r2
ON table2.row2)
SELECT row3
FROM get_some_data) LOOP
dbms_output.Put_line(i.row3);
END LOOP;
END;
我不确定您要求的是什么,但如果您想将CTE转换为PLSQL,下面是示例
BEGIN
FOR i IN (WITH get_some_data
AS (SELECT row3
FROM table1
inner join table1.row2 r2
ON table2.row2)
SELECT row3
FROM get_some_data) LOOP
dbms_output.Put_line(i.row3);
END LOOP;
END;
请正确指定您的问题?请正确指定您的问题?是的,我正在寻找PLSQL的CTE(谢谢,不知道“真实”术语)。我想这将有助于解决我的问题,我会试一试。非常感谢!刚刚完成测试,效果很好。再次感谢!是的,我一直在寻找PLSQL的CTE(谢谢,我不知道真正的术语)。我想这将有助于解决我的问题,我会试一试。非常感谢!刚刚完成测试,效果很好。再次感谢!