我需要一个pl sql过程来输出符合特定条件的数据库中的所有书籍。我已经让它运行并输出正确的值,但它总是会关闭一组值。例如,如果我使用某些可以返回10本书的约束来运行它,我的程序只会显示9.而且它始终是列在列表底部的书。任何帮助表示赞赏。
create or replace procedure which_titles(quant_limit number, price_limit number) as
begin
for next_title in (select *
from title)
loop
IF next_title.qty_on_hand <= quant_limit
and next_title.title_price <= price_limit THEN
dbms_output.put_line(next_title.title_name || ' - ' || next_title.qty_on_hand || ' - ' || next_title.title_price);
END IF;
end loop;
end;
/
show errors
答案 0 :(得分:1)
根据发布的代码。好像没问题。只有在需要修改的代码中有一些冗余。另外,秘密主要在于SELECT Query。因此,使用过程外的实际输入运行select查询。您将明确地解决您的查询。
希望这有帮助。
CREATE OR REPLACE
procedure which_titles(
quant_limit IN NUMBER,
price_limit IN NUMBER)
AS
BEGIN
FOR next_title IN
(SELECT *
FROM title
WHERE title.qty_on_hand <= quant_limit
AND title.title_price <= price_limit
)
LOOP
dbms_output.put_line(next_title.title_name || ' - ' || next_title.qty_on_hand || ' - ' || next_title.title_price);
END LOOP;
END;
/