• Viernes 17 de Mayo de 2024, 06:33

Autor Tema:  Claves De Usuario  (Leído 1234 veces)

bogotanoazul

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Claves De Usuario
« en: Miércoles 25 de Julio de 2007, 00:27 »
0
Hola a todos.

Tengo un problema al realizar un cambio de contraseñas en usuarios ORACLE.

El problema radica que son tres bases de datos diferentes. El usuario de ORACLE es el mismo y lo estoy haciendo de esta manera:

en un procedimiento almacenado.

es la forma de hacerlo?

CREATE OR REPLACE PROCEDURE fin_cambia_password_v1
(
          P_USUARIO  IN OUT     VARCHAR2,
          P_PASSWORD IN OUT     VARCHAR2,
          P_DETALLE_SALIDA OUT  VARCHAR2
)
IS

   V_CONTROL     NUMBER:=0;
   V_DETALLE     VARCHAR2(200);
   V_DETALLE_SC  VARCHAR2(4000);
   V_DETALLE_PCB VARCHAR2(4000);  

BEGIN
     P_USUARIO  := UPPER(P_USUARIO);
     P_PASSWORD := UPPER(P_PASSWORD);
     BEGIN
          V_DETALLE := 'SELECT DE STARCOM';
          SELECT COUNT(*)
            INTO V_CONTROL
            FROM ALL_USERS@PRIMERA U
           WHERE U.USERNAME = P_USUARIO;
     EXCEPTION WHEN OTHERS THEN
        NULL;
     END;
     /*VERIFICA QUE EL USUARIO EXISTA EN LA PRIMERA BASE DE DATOS */
     IF V_CONTROL <> 0 THEN
 
        finanzas.fin_cambia_password_v1@starcom(P_USUARIO,P_PASSWORD,V_DETALLE_SC);
     END IF;
     BEGIN
 
         SELECT COUNT(*)
            INTO V_CONTROL
            FROM ALL_USERS@SEGUNDA U
           WHERE U.USERNAME = P_USUARIO;
     EXCEPTION WHEN OTHERS THEN
        NULL;
     END;  

      IF V_CONTROL <> 0 THEN
        finanzas.fin_cambia_password_v1@pcb(P_USUARIO,P_PASSWORD,V_DETALLE_PCB);
     END IF;

     EXECUTE IMMEDIATE  ('ALTER USER ' ||  P_USUARIO || ' IDENTIFIED BY "' ||P_PASSWORD||'"');
   
END fin_cambia_password_v1;
Fabio Guzman M.
     Ing. Sistemas
Bogotá Distrito Capital