Avalados por :

Como excluir uma tabela se ela já existe no SQLScript: guia passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Olá a todos,

Gostaria de saber como excluir uma tabela se ela já existir,

então tentei usar a declaração if exists para fazer isso, mas parece que não está funcionando:

Por exemplo, se o nome da minha tabela for DATA_TAB, fiz o seguinte:

if exists (select * from DATA_TAB)

(

drop table type DATA_TAB

)

A sintaxe correta para SQLScript é

if exists (select * from DATA_TAB)

then

drop table type DATA_TAB

end if;

ainda não está funcionando;

Alguém tem alguma ideia de como fazer isso?

Obrigado e cumprimentos,

Mohamed Ali

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Ravi,

Como posso visualizar a tabela?

Obrigado

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá a todos, criei um procedimento para verificar se um tipo já existe e eliminá-lo nesse caso. Fui inspirado no tópico http://www.saphana.com/thread/1486 e na resposta de Ravi. E compartilho aqui caso alguém precise:

DROP PROCEDURE existsType;

CREATE PROCEDURE existsType

( IN tablename VARCHAR(20), IN schemaname VARCHAR(20)

) LANGUAGE SQLSCRIPT AS myrowid INTEGER;

BEGIN

myrowid := 0;

SELECT COUNT(*) INTO myrowid FROM tables WHERE schema_name = :schemaname AND table_name = :tablename;

IF (:myrowid > 0 ) THEN

EXEC 'DROP TABLE ' || :schemaname || '.' || :tablename;

END IF;

END;

Cumprimentos

Mohamed Ali

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá!

Por favor, verifique a visualização TABELAS .

select * from tables where table_name like '%your_table_type%';

Saudações,

Ravi

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

ok, encontrei uma solução para remover uma tabela neste tópico:

http://www.saphana.com/thread/1486

que basicamente é: criar um novo procedimento para verificar se a tabela em questão

existe e removê-la, se for o caso. Aqui está o procedimento a ser criado.

drop procedure existstable;
create procedure existstable
( IN tablename VARCHAR(20), IN schemaname varchar(20)
) LANGUAGE SQLSCRIPT AS myrowid integer;

BEGIN
myrowid := 0;
select count(*) into myrowid from "PUBLIC"."M_TABLES" where schema_name =:schemaname and table_name=:tablename;

IF (:myrowid > 0 ) then
exec 'DROP TABLE '||:schemaname||'.'||:tablename;

END IF;

End;

resultou que a informação da tabela de tipo de dados não é armazenada no mesmo

local que a informação da tabela:

em outras palavras: a informação da tabela criada pelo usuário é armazenada

na tabela "PUBLIC"."M_TABLES" , agora estou procurando a tabela

onde são armazenadas as informações dos tipos criados pelo usuário para poder criar

um procedimento como o anterior para remover um tipo.

espero ser suficientemente claro;

Alguém sabe qual é o nome da tabela que contém informações sobre o tipo criado pelo usuário?

Obrigado e cumprimentos

Mohamed Ali

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?