sql - PL/SQL: ORA-01744: inappropriate INTO
问题描述
I want to store the item I get from the loop into the variable I created and print it out, but I faced this error
28/7 PL/SQL: SQL Statement ignored
30/39 PL/SQL: ORA-01744: inappropriate INTO
Here are my loop and my declare:
v_num1 number;
v_menuid varchar(6);
v_menuname varchar(100);
v_stock number;
...
FOR loop_counter in 1..v_num1
LOOP
SELECT *
FROM ( SELECT a.*, rownum rnum
FROM ( SELECT menuitemid INTO v_menuid, menuitemname INTO v_menuname, quantityinstock INTO v_stock
FROM menuitem m, restaurant r
WHERE m.restaurantid = r.restaurantid AND restaurantname = IN_ResName AND quantityinstock <= 10) a
WHERE rownum <= loop_counter )
WHERE rnum >= loop_counter;
DBMS_OUTPUT.PUT_LINE(chr(10));
DBMS_OUTPUT.PUT_LINE('Menu ID: '||v_menuid);
DBMS_OUTPUT.PUT_LINE('Menu Name: '||v_menuname);
DBMS_OUTPUT.PUT_LINE('Quantity In Stock: '||v_stock);
END LOOP;
I want to print out the result like :
Menu ID: M00001
Menu Name: Burger
Stock : 10
解决方案
- 每个投影只有一个 INTO 语句。
- INTO 语句属于最外层的投影。
SELECT menuitemid , menuitemname, quantityinstock
INTO v_menuid, v_menuname, v_stock
FROM ( SELECT a.*, rownum rnum
FROM ( SELECT menuitemid, menuitemname, quantityinstock
FROM menuitem m, restaurant r
WHERE m.restaurantid = r.restaurantid AND restaurantname = IN_ResName AND quantityinstock <= 10) a
WHERE rownum <= loop_counter )
WHERE rnum >= loop_counter;
推荐阅读
- gcloud - 为什么 gsutil 在 powershell 中找不到 python 可执行文件?
- javascript - Discord 机器人验证系统
- ios - Xcode 12 GM 陷入无限循环
- angular - Jhipster 和 ngx-translate 停止使用升级到 0.14
- javascript - Discord ping 报告为 NaN
- javascript - 为什么 justify-content 不导致元素之间的空间?
- c - 为什么参数太少的 printf 在 Cygwin 上工作?
- visual-studio - VS 2017 - 旧解决方案项目中缺少 NuGet 包
- javascript - 从孩子设置上下文会导致无限调用循环
- druid - 使用 DataSketches 计算中位数