SQL - procedimiento

 
Vista:
sin imagen de perfil

procedimiento

Publicado por bruno (3 intervenciones) el 20/03/2017 16:58:49
buenas amigos, estoy intentando crear un procidimento que me compare el contenido de dos tablas.
lo que pretendo hacer es si la clave codificada de una tabla es = igual a la clave de otra tabla y si lo es que me haga un insert en otra tabla. el procedimento que hice es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE OR REPLACE PROCEDURE COMPARAR
AS
TEXTO LIST_OF_PLAIN_PASSWORD.PASSWORD%TYPE;
CIFRADA USER_EJERCICIO.PASSWORD%TYPE;
CURSOR C1 IS
SELECT ORA_HASH(PASSWORD) INTO TEXTO
FROM LIST_OF_PLAIN_PASSWORD;
CURSOR C2 IS
SELECT USER_EJERCICIO.PASSWORD INTO CIFRADA
FROM USER_EJERCICIO;
BEGIN
FOR REG IN C1  LOOP
FOR REG2 IN C2 LOOP
IF(TEXTO=CIFRADA) THEN
INSERT INTO USER_WITH_BAD_PASS VALUES(TEXTO);
END IF;
END LOOP;
END LOOP;
END  COMPARAR;

dicho procedimento compila y ejecuta sin errores pero no hace lo que pretendo me podreis decir donde fallo. gracias de ante mano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

procedimiento

Publicado por Isaias (1921 intervenciones) el 21/03/2017 22:48:02
¿En que motor de base de datos estas trabajando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

procedimiento

Publicado por bruno (3 intervenciones) el 22/03/2017 09:13:13
perdon por el fallo estpy trabajando en oracle y encontre mi fallo, el problema es que soy un poco zoquete y me costo entender el funcionamento de las variables, me costo aprender que en un cursor no puedemos haer un into y que en realidad esas variables no me hacian falta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE OR REPLACE PROCEDURE COMPARAR
AS
CURSOR C1 IS
SELECT ORA_HASH(PASSWORD) PASSWORD
FROM LIST_OF_PLAIN_PASSWORD;
CURSOR C2 IS
SELECT PASSWORD, MY_USER
FROM USER_EJERCICIO;
BEGIN
DELETE USER_WITH_BAD_PASS;
FOR REG IN C1 LOOP
FOR REG2 IN C2 LOOP
IF(REG.PASSWORD = REG2.PASSWORD) THEN
INSERT INTO USER_WITH_BAD_PASS VALUES(REG2.MY_USER);
END IF;
END LOOP;
END LOOP;
END  COMPARAR;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar