miércoles, 8 de abril de 2026

CREATE TABLE IF NOT EXISTS y DROP TABLE IF EXISTS en Oracle 19c

CREATE TABLE IF NOT EXISTS y DROP TABLE IF EXISTS en Oracle 19c

Oracle ha incorporado mejoras en el lenguaje SQL que permiten usar CREATE TABLE IF NOT EXISTS y DROP TABLE IF EXISTS en versiones modernas de Oracle 19c.

Disponible desde Oracle 19c Release Update 19.28 en adelante

1. CREATE TABLE IF NOT EXISTS en USERTEST

CREATE TABLE IF NOT EXISTS USERTEST.CLIENTES (
    ID NUMBER PRIMARY KEY,
    NOMBRE VARCHAR2(100),
    CORREO VARCHAR2(150),
    FECHA_REGISTRO DATE
);

2. DROP TABLE IF EXISTS

DROP TABLE IF EXISTS USERTEST.CLIENTES;

3. Uso conjunto

DROP TABLE IF EXISTS USERTEST.CLIENTES;

CREATE TABLE IF NOT EXISTS USERTEST.CLIENTES (
    ID NUMBER PRIMARY KEY,
    NOMBRE VARCHAR2(100),
    CORREO VARCHAR2(150),
    FECHA_REGISTRO DATE
);

4. Alternativa versiones antiguas

Usar si Oracle es menor a 19.28
BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE USERTEST.CLIENTES';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;
/

5. Matriz de compatibilidad

Versión CREATE IF NOT EXISTS DROP IF EXISTS Recomendación
11gPL/SQL
12cPL/SQL
18cPL/SQL
19c (3-27)PL/SQL
19c (28+)SQL directo
21cSQL directo
23cSQL directo

6. Verificar versión

SELECT * FROM v$version;

SHOW USER;

7. Validar tabla

SELECT table_name
FROM user_tables
WHERE table_name = 'CLIENTES';

Conclusión

Oracle 19c RU 19.28+ permite usar CREATE TABLE IF NOT EXISTS y DROP TABLE IF EXISTS directamente, simplificando scripts de despliegue en el esquema USERTEST.

No hay comentarios:

Publicar un comentario