【发布时间】:2018-03-15 14:11:32
【问题描述】:
我正在尝试创建一个基本的 PL/SQL 查询,其中我使用某个 SKU 作为参数,这样我就可以引用它而无需每次都输入 sku。
编译我的代码时出现错误:
错误报告: ORA-06550:第 6 行,第 1 列: PLS-00428:此 SELECT 语句中应有一个 INTO 子句 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
这是我的代码:
declare
myitem number (20);
begin
myitem := 1000956;
select f.order_no
from fdt_maptool f
where f.item = myitem;
end;
/
我认为这可能与我使用 VARCHAR(20) 而不是 NUMBER 有关,所以我也尝试了。
declare
myitem number;
begin
myitem := 1000956;
select f.order_no
from fdt_maptool f
where f.item = myitem;
end;
/
然后收到这个错误:
错误报告: ORA-06550:第 6 行,第 1 列: PLS-00428:此 SELECT 语句中应有一个 INTO 子句 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
我对 PL/SQL 还很陌生,所以请放轻松!
【问题讨论】:
-
您需要将查询的结果选择成一个变量。例如。
select f.order_no into v_order_no from ...,假设 f.item 是唯一列。 -
我实际上没有这个数据库的行政许可,它不会让我在任何数据库上创建/删除/插入/等等。这是设置引用变量的唯一方法吗?
-
如果您可以从表中进行选择,那么您可以创建一个匿名 PL/SQL 块,其中包含您可以选择的变量。尽管如果您只想运行具有不同参数的可重复查询,那么您可能只需要 sql 语句和
...where f.item = :p_item或...where f.item = &item的 where 子句。 -
在开头的声明语句中声明了is之后,有没有办法只使用&myitem?
-
你想用这个过程实现的究竟是什么,而你不能用直接的 sql 语句来实现?