Variables 在where子句PL/SQL中使用变量
我有几个联合在一起的查询,它们在where子句中都有相同的date参数。我想让它更容易更新。我已经编写了T-SQL变量,但PL SQL有点不同。试图弄清楚如何执行以下操作:Variables 在where子句PL/SQL中使用变量,variables,plsql,dbms-output,Variables,Plsql,Dbms Output,我有几个联合在一起的查询,它们在where子句中都有相同的date参数。我想让它更容易更新。我已经编写了T-SQL变量,但PL SQL有点不同。试图弄清楚如何执行以下操作: DECLARE l_DATE DATE:= '01-JAN-18'; BEGIN SELECT ORDER_NUMBER, ORDER_DATE FROM T.ORDERS WHERE ORDER_DATE >= DBMS_OUTPUT.put_line(l_DATE); END; 我使用的是Oracle SQL D
DECLARE
l_DATE DATE:= '01-JAN-18';
BEGIN
SELECT
ORDER_NUMBER, ORDER_DATE
FROM
T.ORDERS
WHERE
ORDER_DATE >= DBMS_OUTPUT.put_line(l_DATE);
END;
我使用的是Oracle SQL Developer版本17.2.0.188
Oracle数据库11g 11.2.0.40.0您应该直接引用变量:
DECLARE
l_DATE DATE:= '01-JAN-18';
BEGIN
SELECT ORDER_NUMBER, ORDER_DATE
-- BULK COLLECT INTO collection
-- Oracle does not return directly from stored procedure like SQL Server
FROM T.ORDERS
WHERE ORDER_DATE >= l_DATE;
END;
甲骨文12c:
DECLARE
l_cur SYS_REFCURSOR;
l_DATE DATE:= '01-JAN-18';
BEGIN
OPEN l_cur FOR
SELECT ORDER_NUMBER, ORDER_DATE
FROM T.ORDERS
WHERE ORDER_DATE >= l_DATE;
DBMS_SQL.RETURN_RESULT(l_cur);
END;
ORA-06550:第22行第10列:PLS-00302:组件“返回结果”必须为declared@KatieGrayOracle 12c和newerIn Oracle日期文字的语法为。