0

我正在尝试在存储函数中嵌入一个简单的 SELECT 语句,但它似乎抛出了这些错误:

忽略 SQL 语句(第 9 行)

缺少左括号(第 12 行)

首先,为什么它忽略了我的选择语句?其次,我在第 12 行没有括号,所以我不明白这个错误是如何被抛出的。

但这是我存储的功能代码:

CREATE OR REPLACE FUNCTION tax_calc_sf
(p_basketid IN NUMBER)
RETURN NUMBER
IS
  lv_taxamt_num NUMBER;
  lv_subtotal_num bb_basket.subtotal%TYPE;
  lv_taxrate_num bb_tax.taxrate%TYPE;
BEGIN
  SELECT bb.subtotal, bt.taxrate
  INTO lv_subtotal_num, lv_taxrate_num
  FROM bb_basket bb
  JOIN bb_tax bt USING bt.state = bb.shipstate
  WHERE bb.idbasket = p_basketid;

  lv_taxamt_num := lv_subtotal_num*lv_taxrate_num;
  RETURN lv_taxamt_num;

EXCEPTION
  WHEN NO_DATA_FOUND THEN
    RETURN 0;
END;
/
4

1 回答 1

2

尝试

ON bt.state = bb.shipstate

代替

USING bt.state = bb.shipstate

正是因为没有括号Missing left parantheses而引发错误。该子句需要括号。它还要求连接列在两个表中的名称相同。由于您的表中不是这种情况,因此您必须使用该子句。USINGON

于 2012-11-09T21:12:47.463 回答