我正在尝试在存储函数中嵌入一个简单的SELECT语句,但它似乎抛出了这些错误:
忽略SQL语句(第9行)
和
缺少左括号(第12行)
首先,为什么忽略我的select语句? 第二,我在第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;
/
答案 0 :(得分:2)
尝试
ON bt.state = bb.shipstate
而不是
USING bt.state = bb.shipstate
错误地将<{1}}错误地抛出,因为没有parantheses。 Missing left parantheses
条款需要parantheses。它还要求在两个表中同等地命名连接列。由于表中不是这种情况,因此必须使用USING
子句。