在Oracle SQL查询中使用变量

时间:2016-12-06 11:00:36

标签: sql oracle variables

我需要在select语句中使用变量,但我不知道我做错了什么。

如果我运行测试脚本,它可以正常工作:

DECLARE 
    SalesOrderId VARCHAR(10);
BEGIN
    SalesOrderId := '138296584';

    dbms_output.put_line(SalesOrderId);
END;

但是,如果我在Begin-End块中放置一个select查询,那么就不行了。代码如下:

DECLARE 
    SalesOrderId VARCHAR(10);
BEGIN
    SalesOrderId := '138296584';

    dbms_output.put_line(SalesOrderId);

    SELECT * FROM tblOrders tbl WHERE tbl.SalesOrderId = SalesOrderId; 
END;

并抛出错误:

[Error] Execution (8: 5): ORA-06550: line 8, column 5: PLS-00428: an INTO clause is expected in this SELECT statement

我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:0)

错误很明显,你需要将输出存储在某处(有意义),所以使用INTO

SELECT tbl.SalesOrderId,tbl.column1
INTO varSalesOrderId,varColumn1
FROM tblOrders tbl 
WHERE tbl.SalesOrderId = SalesOrderId;