- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 17 anos, 10 meses atrás por
ebertfm.
-
AutorPosts
-
janeiro 6, 2005 às 6:29 pm #74240
Anônimo
Convidadoestou 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 declaredsegue 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.
janeiro 7, 2005 às 8:00 pm #74244Anônimo
ConvidadoCREATE 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;
/janeiro 7, 2005 às 8:01 pm #74245Anônimo
Convidadocara 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;
/dezembro 13, 2005 às 8:30 pm #74926Anônimo
Convidado[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 declaredsegue 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]
dezembro 14, 2005 às 4:37 pm #74928Marcio68Almeida
ParticipanteProvavelmente o usu?rio que ir? possuir essa fun??o n?o tem direito de consultar tabelas SYS.DBA_???
fevereiro 7, 2006 às 10:15 pm #75213ebertfm
Participantepara 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.
-
AutorPosts
- Você deve fazer login para responder a este tópico.
Compartilhe ! Além de ajudar, é legal ! :)
- Clique para compartilhar no Twitter(abre em nova janela)
- Clique para compartilhar no Facebook(abre em nova janela)
- Clique para compartilhar no LinkedIn(abre em nova janela)
- Clique para compartilhar no Reddit(abre em nova janela)
- Clique para compartilhar no WhatsApp(abre em nova janela)
- Clique para compartilhar no Telegram(abre em nova janela)
- Clique para enviar um link por e-mail para um amigo(abre em nova janela)
- Clique para imprimir(abre em nova janela)