Oracle PL/SQL使用WITH子句选择变量
我有一个WITH子句,它给出了我想要的结果,我试图把它放在一个变量中。为了简单起见,我省略了代码。最后一行代码是最相关的Oracle PL/SQL使用WITH子句选择变量,oracle,variables,plsql,select-into,with-clause,Oracle,Variables,Plsql,Select Into,With Clause,我有一个WITH子句,它给出了我想要的结果,我试图把它放在一个变量中。为了简单起见,我省略了代码。最后一行代码是最相关的 WITH ALL_VE_ERRORS AS ( SELECT * FROM ASN.AN_VALIDATION_ERRORS WHERE ... ), FILTER_STATUS AS ( SELECT * FROM ALL_VE_ERRORS WHERE ...
WITH ALL_VE_ERRORS AS (
SELECT *
FROM ASN.AN_VALIDATION_ERRORS
WHERE ...
), FILTER_STATUS AS (
SELECT *
FROM ALL_VE_ERRORS
WHERE ...
) SELECT UNIT_DISCREPANCY FROM FILTER_STATUS INTO W_UNIT_DISCREPANCY; <-- like this
但这不起作用,编译器不喜欢这样。我也试着这样把它放在第一位:
SELECT INTO W_UNIT_DISCREPANCY <-- or like this
WITH ALL_VE_ERRORS AS (...
有人知道这样做的正确语法吗?如果您没有我看不到的原因,那么在WITH子句中不需要两个表;您可以这样简化它:
WITH ALL_VE_ERRORS AS (
SELECT *
FROM ASN.AN_VALIDATION_ERRORS
WHERE ...
)
SELECT UNIT_DISCREPANCY
INTO W_UNIT_DISCREPANCY
FROM ALL_VE_ERRORS
WHERE ...
否则,您可以使用:
WITH ALL_VE_ERRORS AS (
SELECT *
FROM ASN.AN_VALIDATION_ERRORS
WHERE ...
), FILTER_STATUS AS (
SELECT *
FROM ALL_VE_ERRORS
WHERE ...
)
SELECT UNIT_DISCREPANCY
INTO W_UNIT_DISCREPANCY
FROM FILTER_STATUS
如果您没有我看不到的原因,那么在WITH子句中不需要两个表;您可以这样简化它:
WITH ALL_VE_ERRORS AS (
SELECT *
FROM ASN.AN_VALIDATION_ERRORS
WHERE ...
)
SELECT UNIT_DISCREPANCY
INTO W_UNIT_DISCREPANCY
FROM ALL_VE_ERRORS
WHERE ...
否则,您可以使用:
WITH ALL_VE_ERRORS AS (
SELECT *
FROM ASN.AN_VALIDATION_ERRORS
WHERE ...
), FILTER_STATUS AS (
SELECT *
FROM ALL_VE_ERRORS
WHERE ...
)
SELECT UNIT_DISCREPANCY
INTO W_UNIT_DISCREPANCY
FROM FILTER_STATUS
我可以,我知道我可以这样做。我在这篇文章中省略了大约100行代码,虽然这篇文章稍微简单了一点,但我们有一些8级的选择,可能是600行,这在嵌套时会变得非常复杂,所以我更愿意找到一种方法来处理这些代码,这样我就不必重写它,而且为了可读性,但也供进一步参考,因为我们在我的环境中使用了这些巨大的with子句。但是通常我们会把它们选进游标…所以也许我可以把它选进游标,然后把游标选进变量…啊,我很笨,我把into放在FROM后面…:我可以,我知道我可以这样做。我在这篇文章中省略了大约100行代码,虽然这篇文章稍微简单了一点,但我们有一些8级的选择,可能是600行,这在嵌套时会变得非常复杂,所以我更愿意找到一种方法来处理这些代码,这样我就不必重写它,而且为了可读性,但也供进一步参考,因为我们在我的环境中使用了这些巨大的with子句。但是通常我们会把它们选进游标…所以也许我可以把它选进游标,然后把游标选进变量…啊,我很笨,我把into放在FROM后面…: