sql >> Base de Datos >  >> RDS >> Oracle

ALTER &DROP Table DDL con ejecución inmediata en Oracle Database

DDL de tabla ALTER &DROP

A partir de ahora, hemos aprendido todas las formas posibles de crear una tabla dentro de un bloque PL/SQL utilizando Native Dynamic SQL. Puedes consultarlos en los dos últimos tutoriales que son el tutorial 82 y el tutorial 83.

Gracias, Dynamic SQL por darnos el poder de ejecutar sentencias DDL y DML en nuestro bloque PL/SQL. Ok, cálmense todos ustedes, gente de la Edad de Piedra. Sé que el paquete DBMS_SQL todavía está allí, pero en comparación con el SQL dinámico, lo encuentro realmente complejo, sin mencionar su lento rendimiento. De todos modos, entonces

¿Qué estamos aprendiendo de este tutorial?

En este tutorial, aprenderemos cómo usar la tabla DDL ALTER &DROP con la instrucción Execute Immediate de SQL dinámico nativo. Significa que al final de este tutorial podrá modificar y eliminar dinámicamente un objeto de la base de datos, como una tabla, directamente a través de su programa PL/SQL.

¿Por qué debemos aprender eso?

Algunos pueden encontrar el tema irrelevante, pero no es más bien un tema muy importante, especialmente desde la perspectiva de la certificación y la entrevista de Oracle. Además, como desarrollador, todos debemos tener claros nuestros fundamentos porque nunca se sabe cuándo los vamos a necesitar.

Entonces, comencemos el tutorial, en caso de que todavía tenga preguntas, no dude en enviarme un mensaje en mi Facebook, aquí. Primero aprendamos cómo modificar una tabla usando ALTER TABLE con Ejecución inmediata de SQL dinámico.

¿Cómo modificar dinámicamente una tabla?

Para modificar un objeto de base de datos, como una tabla, usamos ALTER DDL en Oracle Database. Modificar una tabla usando ALTER DDL a través de SQL es fácil en comparación con PL/SQL.

PL/SQL no admite declaraciones DDL, DML y DQL directamente. Para ejecutar las instrucciones SQL mencionadas, necesitamos usar SQL dinámico o el paquete DBMS_SQL. Entre estos dos, Native Dynamic SQL (NDS) es la opción más viable debido a su simplicidad y rendimiento optimizado. Puede leer las ventajas de NDS sobre el paquete DBMS_SQL aquí.

Por lo tanto, la forma más sencilla de modificar dinámicamente un objeto de base de datos como una tabla es usar Alter Table DDL con la declaración Ejecutar inmediatamente de Native Dynamic SQL.

Ejemplo:Alter Table DDL con instrucción Ejecutar inmediatamente.

Para la demostración usaremos la misma tabla que creamos en el último tutorial. Allí creamos una tabla con el nombre tut_83 que tenía dos columnas tut_num de tipo de datos NUMBER y tut_name de tipo de datos varchar 2.

Si está practicando conmigo, debe tener esa tabla creada en su esquema. Si es así, entonces está todo listo para ir; de lo contrario, visite el último tutorial y cree esa tabla.

Ahora digamos que queremos agregar otra columna tut_date de tipo de datos de fecha a esta tabla y eso también usando SQL dinámico nativo. Para hacer eso, necesitamos usar ALTER TABLE DDL con la instrucción Ejecutar inmediatamente.

Paso 1:Prepare la declaración DDL.

La mejor práctica para escribir un programa SQL dinámico es preparar su declaración SQL de antemano.

ALTER TABLE tut_83 ADD tut_date DATE

Aquí está el DDL ALTER TABLE que usaremos para la ejecución dinámica. Esta declaración agregará la columna tut_date del tipo de datos DATE a la tabla tut_83.

También puede ver el video tutorial para una demostración en vivo del concepto.

Paso 2:escribir el programa SQL dinámico nativo.

Una vez que tenga su declaración DDL lista, estará listo para escribir el bloque PL/SQL.

SET SERVEROUTPUT ON;
DECLARE
 ddl_qry VARCHAR2(50);
BEGIN
 ddl_qry := 'ALTER TABLE tut_83
        	 ADD  tut_date DATE';
 EXECUTE IMMEDIATE ddl_qry;
END;
/  

Al ejecutarse con éxito, este programa PL/SQL modificará la tabla mencionada anteriormente. Puede verificar la estructura modificada de su tabla usando el comando DESCRIBE, así

DESCRIBE tut_83;

O

DESC tut_83;

Eso es todo lo que tienes que hacer. Así es como modificamos un objeto de base de datos dinámicamente usando ALTER TABLE DDL con la instrucción Execute Immediate. Eso también concluye la primera parte del tutorial, ahora pasemos a la segunda y aprendamos cómo eliminar una tabla usando SQL dinámico nativo.

¿Cómo eliminar dinámicamente una tabla?

Para eliminar un objeto de base de datos como una tabla, usamos DROP DDL en Oracle Database. Como cualquier otra instrucción DDL, esta tampoco es compatible directamente con el motor PL/SQL. Y como de costumbre, también necesitamos usar Dynamic SQL para ejecutar este DDL. Veamos cómo eliminar una tabla usando Execute Immediate of Native Dynamic SQL.

Paso 1:Prepare la declaración DDL.

El DDL para eliminar una tabla es:

DROP TABLE tut_83

Este DDL eliminará la tabla tut_83 del esquema.

Paso 2:escriba el programa PL/SQL para la tabla DROP con Ejecución inmediata.

SET SERVEROUTPUT ON;
DECLARE
    ddl_qry     VARCHAR2 (100);
BEGIN
    ddl_qry := 'DROP TABLE tut_83';
    EXECUTE IMMEDIATE ddl_qry;
END;
/

Entonces, la ejecución exitosa de este programa debería eliminar la tabla tut_83 que puede verificar fácilmente usando el comando DESCRIBE como se muestra arriba.

Ese es el tutorial sobre cómo modificar y eliminar un objeto de base de datos usando Alter &Drop table DDL con Execute Immediate declaración de Native Dynamic SQL en Oracle Database. Espero que hayas disfrutado leyéndolo y hayas aprendido algo nuevo. Por favor, comparte este blog en tus redes sociales con tus amigos. También puede conectarse conmigo en mi página de Facebook para obtener información más interesante. ¡Gracias y que tengas un gran día!