PROCEDURE EC_LOGIN(P_CD_SENHA IN NUMBER ,
P_DC_EMAIL_PESSOA IN VARCHAR2 ,
P_CD_PESSOA IN NUMBER ,
P_CD_LOGIN OUT NUMBER ,
P_SQL_CODE OUT NUMBER ,
P_SQL_MSG OUT VARCHAR2 )
IS
BEGIN
P_SQL_CODE := 0;
P_SQL_MSG :='';
SELECT B.DC_EMAIL_PESSOA,
A.CD_SENHA
INTO P_CD_LOGIN
FROM T_PESSOA A,
T_EMAIL_PESSOA B
WHERE A.CD_PESSOA = B.CD_PESSOA
AND A.CD_SENHA = P_CD_SENHA
AND B.DC_EMAIL_PESSOA = P_DC_EMAIL_PESSOA
;
EXCEPTION
WHEN OTHERS THEN
P_SQL_CODE :=SQLCODE;
P_SQL_MSG :='USUARIO OU SENHA INVALIDA !!'
;
END EC_LOGIN;
1 create or replace PROCEDURE EC_LOGIN(P_CD_SENHA IN NUMBER ,
2 P_DC_EMAIL_PESSOA IN VARCHAR2 ,
3 P_CD_PESSOA IN NUMBER ,
4 P_CD_LOGIN OUT NUMBER ,
5 P_SQL_CODE OUT NUMBER ,
6 P_SQL_MSG OUT VARCHAR2 )
7 IS
8 BEGIN
9 P_SQL_CODE := 0;
10 P_SQL_MSG :='';
11 SELECT username,
12 status
13 INTO P_CD_LOGIN,
14 p_sql_code
15 FROM v$session;
16 EXCEPTION
17 WHEN OTHERS THEN
18 P_SQL_CODE :=SQLCODE;
19 P_SQL_MSG :='USUARIO OU SENHA INVALIDA !!'
20 ;
21* END EC_LOGIN;
SQL> /
1 create or replace PROCEDURE EC_LOGIN(P_CD_SENHA IN NUMBER ,
2 P_DC_EMAIL_PESSOA IN VARCHAR2 ,
3 P_CD_PESSOA IN NUMBER ,
4 P_CD_LOGIN OUT NUMBER ,
5 P_SQL_CODE OUT NUMBER ,
6 P_SQL_MSG OUT VARCHAR2 ) IS
7
8 BEGIN
9 P_SQL_CODE := 0;
10 P_SQL_MSG :='';
11 SELECT username , status --Para cada ítem do select
12 INTO P_CD_LOGIN,p_sql_code --uma variável do INTO
13 FROM v$session;
14
15 EXCEPTION
16 WHEN OTHERS THEN
17 P_SQL_CODE :=SQLCODE;
18 P_SQL_MSG :='USUARIO OU SENHA INVALIDA !!';
19 END EC_LOGIN;
Não, cara.
Eu não criei a package. Eu só usei o código acima postado para exemplificar que devemos sempre usar a tag CODE para ficar mais fácil de entender.