¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como excluir uma tabela se existir ao escrever procedimentos armazenados no HANA

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

Olá,

Existe um comando para remover a tabela se ela existir ao escrever procedimentos armazenados no HANA?

Estou recebendo um erro de 'não é possível usar o nome da tabela duplicado' ao executar meu procedimento armazenado.

Obrigado.

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

4 Respuestas

0
Cargando...

Olá,

Além disso, não consigo criar uma auto-sequência para a coluna de ID em uma tabela temporária. Tentei usar ::ROWCOUNT mas sem sucesso. Também tentei criar uma sequência dentro do procedimento armazenado e usar some_seq.nextval mas diz que não é permitido criar uma sequência dentro de um procedimento armazenado. Alguém poderia encontrar um bom método para fazer isso?

Obrigado.

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

Olá Jonathan,

Obrigado pela resposta, mas gostaria de remover a tabela (caso ela já exista na memória) antes de criá-la. Algo como:

IF OBJECT_ID('tempdb..#Temp1') IS NOT NULL

BEGIN

DROP TABLE #VisitsTemp1

END

no MS SQL Server

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

Olá

Tentando adicionar alguns pontos adicionais ao código de Jonathan.

A visualização de tabelas está sob o esquema SYS. Com a versão do DB SP9, consigo ver a coluna adicional 'TEMPARORY_TABLE_TYPE' na visualização de tabelas que pode ser útil.

Saudações,

Venkat N.

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

A resposta é não, não há um comando para excluir uma tabela se ela existir.

Se for uma tabela temporária global, você pode tentar algo assim:


CREATE GLOBAL TEMPORARY TABLE YOUR_TABLE (ONE INTEGER);

declare created INTEGER;
created := 0;
select count(*) into created from tables where schema_name ='SEU_ESQUEMA' e table_name='YOUR_TABLE' e IS_TEMPORARY = 'TRUE';
IF (:created > 0) THEN
  DROP TABLE YOUR_TABLE
END IF

Não tenho certeza se isso funciona com tabelas temporárias locais, mas vale a pena tentar.

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?