사용자 이름과 암호의 입력을 허용하는 절차를 작성했습니다. 성공한 경우 로그인의 시간 소인을 proc해야합니다. 문제는 코드가 & 사용자 이름을 건너 뛰고 코드에서 & 패스 인 다음 사용자 정의 항목으로 이동한다는 것입니다. 이건 내 코드입니다 : ECHO는 켜져 있고 SO SERVEROUTPUT은 BTW입니다무엇을할까요? 내 사용자 정의 입력이 값 입력을 허용하지 않습니다.
create or replace procedure LOGIN_CK_PF
as
fname bb_shopper.firstname%type;
lname bb_shopper.lastname%type;
uname bb_shopper.username%type;
pass bb_shopper.password%type;
begin
select firstname, lastname, username, password
into fname, lname, uname, pass from bbshop
where username=&username;
if pass = &pass then
dbms_output.put_line(Sysdate);
else
dbms_output.put_line('Invalid Login');
end if;
exception
when no_data_found then
dbms_output.put_line('Invalid Login');
end;
/
이 코드 출력 값의 항목 중 모습입니다 : 그 전체를 복용처럼
Enter value for username:
old 11: select firstname, lastname, username,
password into fname, lname, uname, pass
from bbshop
new 11: select firstname, lastname, username,
password into fname, lname, uname, pass
from bbshop
그것은 본다 항목을 항목으로 선택 ??? 특정 라인에 대한 오류는 다음과 같습니다 : 당신은 프로 시저에 전달하는 적절한 PL/SQL 매개 변수를 사용할 필요가
11/2 PL/SQL: SQL Statement ignored
11/107 PL/SQL: ORA-00936: missing expression
일반적으로, 그것은 항목으로 전체 선택을하고 있음을 의미하지 않는다. 바인드 매개 변수가 첨부되기 전의 코드 조각을 보여줍니다. 암호 컬럼과 where 절이 선택에서 사라지는 경우에 이상한 점은 무엇입니까? 그리고 3 열을 4 개의 매개 변수로 선택하면이 오류가 발생합니다. 이 산출물이 당신이 당신의 우편물에 제공 한 절차의 호출을 위해 생산되었는지 확신합니까? 어쩌면 당신은 약간의 변화를 만들었 을까요? – Guneli
PL/SQL에는 사용자 입력을 수용 할 수있는 기능이 없습니다. SQL * Plus를 사용하여 스크립트를 실행하고 있습니까? –
저는 실제로 SQL Plus를 사용하고 있습니다. 그러나 사용자 입력이있는 다른 코드에 대해 동일한 프로그램을 사용 했으므로 이상하게 작동했습니다. – Jongu