Alterando Usuario através de Procedure

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rickab7
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 53
Registrado em: Sex, 25 Ago 2006 8:11 pm
Localização: campo grande
stephany henrique de almeida batista

Bom dia.

Estou criando uma procedure para que seja trocada a senha de todos os usuarios para uma padrão. Porem justamente na linha do ALTER, está dando erro no momento de criação da procedure, pois diz que a expressão não é um valor permitido.

segue abaixo o codigo do script

Selecionar tudo

/****************************************************************************************
	Sera gerado um outro script "importa_usuarios.sql" que devera
	ser executado no banco destino.
 *****************************************************************************************/


CREATE OR REPLACE PROCEDURE prc_update_senha_usuario
IS 
BEGIN
  FOR item IN (SELECT username,password FROM dba_users du,dbasgu.usuarios su where du.username = su.cd_usuario and du.username not in ('DBAMV','DBAPS','DBASGU','MVINTEGRA') order by du.username)
  LOOP
    DECLARE
    n_qtde_usuarios   NUMBER;
    v_clausula_grant  VARCHAR(200);
    
    BEGIN
      select count(*) into n_qtde_usuarios from dba_users where dba_users.username = item.username;
      IF (n_qtde_usuarios > 0) 
      THEN
        execute immediate alter user "item.username" identified by values item.password;
        execute immediate v_clausula_grant;
      END IF;
    END;    
  END LOOP;
END;

alguém poderia dar uma sugestão de como criar essa procedure?

Fiquem com Deus
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Bom dia,

Tente alterar essa linha:

Selecionar tudo

execute immediate ' alter user "item.username" identified by values item.password; '; 
Colocando aspas simples após o execute immediate.
qualquer coisa, manda ai.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes