Oracle 在PL-SQL中声明和使用变量

Oracle 在PL-SQL中声明和使用变量,oracle,plsql,Oracle,Plsql,我是PL-SQL的新手。我不明白为什么会出现错误“PLS-00428:此SELECT语句中应包含INTO子句” 我试图完成的是创建一个变量c_limit并加载它的值。然后我想稍后使用该变量来过滤数据 基本上,我在演示数据库中玩,看看我可以/不能用PL-SQL做什么 代码一直运行到我添加了“select*from demo\u orders,其中CUSTOMER\u ID=custID;” 看起来错误来自第二个select查询 select * from demo_orders where CUS

我是PL-SQL的新手。我不明白为什么会出现错误“PLS-00428:此SELECT语句中应包含INTO子句”

我试图完成的是创建一个变量c_limit并加载它的值。然后我想稍后使用该变量来过滤数据

基本上,我在演示数据库中玩,看看我可以/不能用PL-SQL做什么

代码一直运行到我添加了“select*from demo\u orders,其中CUSTOMER\u ID=custID;”


看起来错误来自第二个select查询

select * from demo_orders where CUSTOMER_ID = custID;
PL-SQL不允许对信息进行独立的SQL选择查询


如果在匿名块中使用SQL select语句(在PL/SQL中,在BEGIN和END关键字之间),则需要对第二个select查询执行一些操作,必须选择INTO,以便PL/SQL可以利用变量保存查询结果。这里需要注意的是,如果要选择多个列(通过“SELECT*”),则必须指定多个变量或记录以将查询结果插入其中

例如:

SELECT 1 
INTO v_dummy 
FROM dual;



还值得指出的是,如果
SELECT*FROM…
将返回多行,PL/SQL将抛出一个错误。您应该只希望从SELECT INTO中检索1行数据。

您必须
SELECT*from demo\u orders,其中CUSTOMER\u ID=custID编码到某个内容中,就像您在第一个查询中所做的那样。看起来您无论如何都不需要这个查询,所以只要注释或删除它,这个PL/SQL块就可以工作了。
SELECT 1 
INTO v_dummy 
FROM dual;
SELECT 1, 2 
INTO v_dummy, v_dummy2 
FROM dual;