【发布时间】:2021-06-16 13:03:36
【问题描述】:
我对此很陌生,所以它可能听起来很基础,但是我想创建一个函数,它接受两个输入参数(一个主键和一个数值)并进行计算以比较输入数值 (v_priceWantToInsert)大于表列中的最大值并返回结果为真或假。 这是代码:
CREATE OR REPLACE FUNCTION PRICE_CHECK(v_productID IN VARCHAR2, v_priceWantToInsert in NUMBER)
RETURN VARCHAR2
IS
RETURN BOOLEAN AS
v_Bool BOOLEAN;
v_MAXPRICE NUMBER;
BEGIN
SELECT
MAX(B.BIDPRICE) INTO v_MAXPRICE
FROM
PRICEBID B
WHERE B.PRODUCTID = v_productID;
IF (v_MAXPRICE > v_priceWantToInsert) THEN
v_Bool := FALSE;
ELSE
v_Bool := TRUE;
END IF;
END PRICE_CHECK;
DECLARE
var1 VARCHAR2(100);
BEGIN
var1 := case when PRICE_CHECK('P00001',45) then 'true' else 'false' end;
DBMS_OUTPUT.PUT_LINE('It is: ' || var1);
END;
但是我的代码显示对象无效的错误并且通常是 PL/SQL 编译错误。我愿意接受任何解决方案,只要它给我一个真或假值。
【问题讨论】:
标签: oracle stored-procedures oracle11g oracle-sqldeveloper