Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #74240
    Anônimo

      estou tentando fazer essa fun??o e esta dando o seguinte erro:

      0/0 PL/SQL: Compilation unit analysis terminated
      3/17 PLS-00201: identifier ‘SYS.DBA_TABLES’ must be declared

      segue abaixo a fun??o:

      CREATE OR REPLACE FUNCTION EXISTE_TABELA
      (NOME_TABELA IN DBA_TABLES.TABLE_NAME%TYPE)
      RETURN CHAR
      IS
      vTABELA VARCHAR2(50);
      BEGIN
      SELECT TABLE_NAME INTO vTABELA FROM DBA_TABLES WHERE DBA_TABLES.TABLE_NAME = NOME_TABELA;
      IF vTABELA = NOME_TABELA THEN
      RETURN(‘S’);
      ELSE
      RETURN(‘N’);
      END IF;
      END EXISTE_TABELA;

      se alguem puder me ajudar…muito obrigado.

      #74244
      Anônimo

        CREATE OR REPLACE FUNCTION EXISTE_TABELA(NOME_TABELA IN ALL_TABLES.TABLE_NAME%TYPE)
        RETURN VARCHAR2
        IS
        vTABELA VARCHAR2(50);
        BEGIN
        SELECT TABLE_NAME INTO vTABELA FROM ALL_TABLES WHERE ALL_TABLES.TABLE_NAME = NOME_TABELA;
        IF vTABELA = NOME_TABELA THEN
        RETURN(‘S’);
        ELSE
        RETURN(‘N’);
        END IF;
        END EXISTE_TABELA;
        /

        #74245
        Anônimo

          cara tenta assim, outra coloquei all_ pois qualquer usuraio tem premiss?o e vc n?o tem que por o usuario tipo sys.existe_tabela

          o que estava errado era o tipo de retorno char, ai mudei pra varchar2

          CREATE OR REPLACE FUNCTION EXISTE_TABELA(NOME_TABELA IN ALL_TABLES.TABLE_NAME%TYPE)
          RETURN VARCHAR2
          IS
          vTABELA VARCHAR2(50);
          BEGIN
          SELECT TABLE_NAME INTO vTABELA FROM ALL_TABLES WHERE ALL_TABLES.TABLE_NAME = NOME_TABELA;
          IF vTABELA = NOME_TABELA THEN
          RETURN(‘S’);
          ELSE
          RETURN(‘N’);
          END IF;
          END EXISTE_TABELA;
          /

          #74926
          Anônimo

            [quote=”Sadraque”:2z9slv6d]estou tentando fazer essa fun??o e esta dando o seguinte erro:

            0/0 PL/SQL: Compilation unit analysis terminated
            3/17 PLS-00201: identifier ‘SYS.DBA_TABLES’ must be declared

            segue abaixo a fun??o:

            CREATE OR REPLACE FUNCTION EXISTE_TABELA
            (NOME_TABELA IN DBA_TABLES.TABLE_NAME%TYPE)
            RETURN CHAR
            IS
            vTABELA VARCHAR2(50);
            BEGIN
            SELECT TABLE_NAME INTO vTABELA FROM DBA_TABLES WHERE DBA_TABLES.TABLE_NAME = NOME_TABELA;
            IF vTABELA = NOME_TABELA THEN
            RETURN(‘S’);
            ELSE
            RETURN(‘N’);
            END IF;
            END EXISTE_TABELA;

            se alguem puder me ajudar…muito obrigado.[/quote]

            #74928
            Marcio68Almeida
            Participante

              Provavelmente o usu?rio que ir? possuir essa fun??o n?o tem direito de consultar tabelas SYS.DBA_???

              #75213
              ebertfm
              Participante

                para funcionar no formato que vc escreveu, basta fazer o comando abaixo como usu?rio sys:

                grant select on dba_tables to nome_do_usuario_dono_da_funcao;

                Abracos.

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