Oracle 10g开发人员表单中的错误绑定变量错误

时间:2013-04-05 13:13:19

标签: oracle oracleforms

我创建了一个名为password

的表
CREATE TABLE PASSWORD (USER_ID NUMBER(10)  CONSTRAINT  PASSWORD_USER_ID_PK PRIMARY KEY,
PASSWD   VARCHAR2(20) NOT NULL);

INSERT INTO PASSWD (USER_ID,PASSWD) VALUES (1,100);
INSERT INTO PASSWD (USER_ID,PASSWD) VALUES (2,200);

并在Oracle表单开发人员10g中创建了一个Login表单。我将此代码用于登录按钮。

DECLARE
    CURSOR login_cursor IS
      SELECT user_id,
             passwd
      FROM   password;
    user_id_var password.user_id%TYPE;
    passwd_var  password.passwd%TYPE;
    login_flag  BOOLEAN := FALSE;
BEGIN
    OPEN login_cursor;

    <<check_records>>
    LOOP
        FETCH login_cursor INTO user_id_var, passwd_var;

        IF( :login_user_id = user_id_var
            AND :login_passwd = passwd_var ) THEN
          Message('You are in');

          login_flag := TRUE;

          exit check_records;
        END IF;

        EXIT WHEN login_cursor%NOTFOUND;
    END LOOP;

    CLOSE login_cursor;

    IF( NOT login_flag ) THEN
      Message('INVALID LOGIN');
    END IF;

    clear_form;
END; 

但是错误消息显示为

bad bind variable 'login_user_id'
bad bind variable 'login_passwd'

这是什么解决方案?

1 个答案:

答案 0 :(得分:1)

使用:block_name.item_name引用表单变量。你正在使用:login_user_id似乎缺少对块的引用,因此Forms无法引用变量,而且似乎它是一个绑定变量,它不是。

更正引用变量的语法