转换为 pl/sql

时间:2021-05-17 19:16:52

标签: sql oracle plsql

这是我的 SQL Select 语句,我想将其转换为在 PL/SQL 代码中调用的语句:

SELECT StockID 
  FROM StockPrice 
 WHERE StockType ='Technology' AND Price < 150 
    OR StockType ='Retail' AND Price < 150;

任何想法......

1 个答案:

答案 0 :(得分:3)

假设查询返回单个值的一个简单选项是

DECLARE
  l_stockid stockprice.stockid%TYPE;
BEGIN
  SELECT stockid
  INTO l_stockid
  FROM stockprice
  WHERE (stocktype = 'Technology' AND price < 150)
     OR (stocktype = 'Retail'     AND price < 150);
END;
/

不过,WHERE 可以重写为

  WHERE price < 150
    AND stocktype in ('Technology', 'Retail')

如果该 select 语句返回多于一行,您将得到 too_many_rows,问题是您想如何处理它?抛出异常?选入收藏?有些不同?这取决于。