Ravi:
Como siempre, você é incrível! Ótimo código!
Obrigado por testá-lo tão rapidamente. Eu tinha na minha lista de tarefas para tentar mais tarde esta noite... Agora desapareceu...
Saudações,
Rama
Avalados por :
Isso pode parecer uma pergunta muito boba, mas tenho estado revisando os PDFs do HANA e não consigo encontrar a resposta que estou procurando.
Atualmente estou no processo de realizar um POC do HANA e estou tentando criar um grande script SQL que criará várias tabelas e as preencherá com alguns dados.
Sendo obsessivo-compulsivo, gosto que meus scripts sejam executados sem erros. A parte em que preciso de ajuda é na parte do DROP TABLE do script.
Tenho as linhas DROP TABLE lá, mas se uma tabela não existir previamente, recebo uma mensagem de erro.
O HANA tem o equivalente de um IF EXISTS ..... DROP TABLE ??
Qualquer ajuda seria muito apreciada!
Ravi:
Como siempre, você é incrível! Ótimo código!
Obrigado por testá-lo tão rapidamente. Eu tinha na minha lista de tarefas para tentar mais tarde esta noite... Agora desapareceu...
Saudações,
Rama
Como mencioné, estoy complicando las cosas... pero qué demonios, podría intentar algo nuevo
=================================
drop procedure pr_drop_table;
CREATE PROCEDURE pr_drop_table (
IN† v_in_schema††† VARCHAR† (30), -- Nome do esquema que contém a tabela a ser eliminada
IN† v_in_table†† VARCHAR† (30)††† -- Nome da tabela a ser eliminada
)
LANGUAGE SQLSCRIPT
AS
v_tab_exists smallint := 0;
BEGIN
-- Criar uma tabela fictícia
CREATE TABLE t_dummy (v_tname VARCHAR(30));
-- Inserir na tabela fictícia um valor de TABLES com table_name como parâmetro
INSERT INTO t_dummy
SELECT table_name FROM TABLES
WHERE schema_name = :v_in_schema AND table_name = :v_in_table;
-- Verificar quantos registros foram inseridos
-- Se a tabela existir, ROWCOUNT será 1, caso contrário 0
v_tab_exists := ::ROWCOUNT;
IF v_tab_exists > 0 THEN
EXEC 'DROP TABLE '||:v_in_table;
END IF;
-- Excluir a tabela fictícia
DROP TABLE t_dummy;
END;
Acho que me adiantei demais nisso.
Como mencionou, você precisa de um código completamente livre de ERROS que não gere nenhuma exceção (o que não tenho certeza de como lidar no HANA neste momento, como por exemplo "Dados não encontrados", "Exceção SQL", etc.).
Para conseguir isso, acredito que terá que escrever um programa personalizado para excluir a tabela com o nome da tabela e o esquema como parâmetros de entrada e SQL dinâmico com o comando "EXEC 'DROP TABLE '||<nome_tabela_entrada>;.
Não tenho certeza se estou complicando demais isso, mas vale a pena tentar.
Cumprimentos,
Ravi
Acredito que você pode usar TABELAS e procurar a existência da tabela (coluna = nome_da_tabela) para ser removida.
Você pode escrever um procedimento e também utilizar EXISTS (se necessário).
Saudações,
Ravi
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute