mys*_*lls 5 sql forms oracle variables bind
我想问这个错误...
Error 49 at line 5, column 6
bad bind variable 'S_ORD.payment_type'
Run Code Online (Sandbox Code Playgroud)
这是代码:
DECLARE
N NUMBER;
v_credit S_CUSTOMER.credit_rating%type;
BEGIN
IF :S_ORD.payment_type = 'CREDIT' THEN
SELECT credit_rating
INTO v_credit
FROM S_CUSTOMER
WHERE :S_ORD.customer_id = id;
IF v_credit NOT IN ('GOOD', 'EXCELLENT') THEN
:S_ORD.payment_type:= 'CASH';
n:=SHOW_ALERT('Payment_Type_Alert');
END IF;
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
我是oracle表单的新手,所以不确定我是否缺少设置。存在S_ORD表,并具有一列payment_type,该列由'CREDIT'和'CASH'值组成。谢谢。
显然,我们很难知道你做了什么,因为我们看不到你的代码,而且你没有给我们太多信息。所以这是一个猜测。
S_ORD 是表单中的一个块,基于(我希望)名为 S_ORD 的表。您发布的代码片段正在某个触发器中运行,可能是 POST-QUERY 或 WHEN-VALIDATE-ITEM,尽管这并不重要,并且应该填充该块上名为 PAYMENT_TYPE 的字段。
错误消息告诉您的是块 S_ORD 没有名为 PAYMENT_TYPE 的字段。(它说“绑定变量”,因为冒号表示法表示绑定变量,我们也可以以相同的方式引用诸如全局变量之类的东西)。
为什么该字段不存在?任何一个:
在第一种情况下,您需要进入块属性编辑器并添加列。在第二种情况下,您需要将非基表项添加到您的块中。 在这里了解如何操作。如果您将数据块命名为表名以外的其他名称(并且这样做可能有充分的理由),那么您需要在调用中使用块名称,而不是表名称)。