Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #101328
    femag
    Participante

      Olá,

      estou com o seguinte erro:

      ERRO na linha 1:
      ORA-00001: restriþÒo exclusiva (SYSTEM.SYS_C004102) violada
      ORA-06512: em “SYSTEM.PRC_NOVO_OPERADOR”, line 29
      ORA-06512: em line 1

      … na procedure:

      CREATE OR REPLACE PROCEDURE prc_novo_operador
      (v_cod IN operador.cd_operador%TYPE,
      v_fun IN operador.cd_funcionario%TYPE,
      v_log IN operador.nm_login%TYPE,
      v_sen IN operador.cd_senha%TYPE)
      IS
      v_log_exist VARCHAR(15);

      CURSOR cursor_login
      IS
      SELECT nm_login
      FROM operador;

      BEGIN
      OPEN cursor_login;
      LOOP
      FETCH cursor_login INTO v_log_exist;
      EXIT WHEN cursor_login%NOTFOUND;
      IF v_log_exist = v_log THEN
      DBMS_OUTPUT.PUT_LINE(‘Ja existe um login cadastrado com este
      nome!’);
      ELSE
      INSERT INTO operador(cd_operador,cd_funcionario, nm_login,
      cd_senha)
      VALUES(v_cod,v_fun,v_log,v_sen);
      END IF;
      END LOOP;
      COMMIT;
      CLOSE cursor_login;
      END;
      /

      O que é estranho é que quando chamei a procedure pela primeira vez funcionou direitinho. Na segunda vez aparece esse erro.

      Agradeço desde já!

      #101330
      felipeg
      Participante

        Olá,

        Primeiro verifique do que se trata esta restrição SYS_C004102.
        Da uma olhada na ALL_CONSTRAINTS.

        Segundo, o que você passou como valores no primeiro e segundo testes, ele já não tem nada igual ou campos com um dado de upper diferente, tipo USUARIO e usuario.

        E por último, só uma dica, tente não criar,manter ou mexer em objetos dentro do SYS ou do SYSTEM, crie um schema próprio pra isso.

        Atenciosamente,
        Felipe.

        #101332
        jspaulonci
        Participante

          Erros ORA-065XXXX são erros genéricos, o torna a correção as vezes um pouco desafiadora.

          Quanto a questão do objeto no SYSTEM eu diria que eu evitaria criar qualquer objeto nesses owners (incluindo o system que não aparece nessa relação)

          select *
          from sys.ku_noexp_tab where obj_type=’SCHEMA’;

          Em relação aos objetos com o prefixo ALL_*, é importante colocar que, um select neles trará apenas o que o usuário em questão tem acesso .

          ALL_OBJECT é diferente de DBA_OBJECTS, DBA_OBJECTS possue todos os objetos do banco, já a ALL_OBJECTS , possui somente os objetos que o owner possue permissão.

          #101351
          femag
          Participante

            Irei pesquisar sobre a restrição SYS_C004102 e criar um novo schema.
            Obrigada!

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress