¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo eliminar una tabla si existe al escribir procedimientos almacenados en HANA

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

Hola,

¿Hay un comando para eliminar la tabla si existe al escribir procedimientos almacenados en HANA?

Estoy recibiendo un error de 'no se puede utilizar el nombre de tabla duplicado' al ejecutar mi procedimiento almacenado.

Gracias.

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

4 Respuestas

0
Cargando...

Hola,

Además, no puedo crear una auto-secuencia para la columna de ID en una tabla temporal. Intenté usando ::ROWCOUNT pero falló. También intenté crear una secuencia dentro del procedimiento almacenado y usar some_seq.nextval pero dice que no está permitido crear una secuencia dentro de un procedimiento almacenado. ¿Alguien podría encontrar un buen método para hacerlo?

Gracias.

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

Hola Jonathan,

Gracias por la respuesta, pero quiero eliminar la tabla (si ya existe en algún lugar en la memoria) antes de crearla. Algo así como:

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

BEGIN

DROP TABLE #VisitsTemp1

END

en MS SQL Server

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

Hola

Intentando agregar algunos puntos adicionales al código de Jonathan.

La vista de tablas está bajo el esquema SYS. Con la versión de DB SP9 puedo ver la columna adicional 'TEMPARORY_TABLE_TYPE' en la vista de tablas que podría ser útil.

Saludos,

Venkat N.

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

La respuesta es no, no hay un comando para eliminar una tabla si existe.

Si se trata de una tabla temporal global, puedes intentar algo como esto:


CREATE GLOBAL TEMPORARY TABLE YOUR_TABLE (ONE INTEGER);

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

No estoy seguro si esto funciona con tablas temporales locales, pero vale la pena intentarlo.

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?