我创建了一个名为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'
这是什么解决方案?
答案 0 :(得分:1)
使用:block_name.item_name
引用表单变量。你正在使用:login_user_id
似乎缺少对块的引用,因此Forms无法引用变量,而且似乎它是一个绑定变量,它不是。
更正引用变量的语法