viernes, 28 de abril de 2023

Oracle 23c - Instalación más Sencilla de Esquemas de Ejemplo

Oracle provee desde hace décadas un conjunto de esquemas con datos para poder utilizarlos de ejemplo, tal como se detalla a continuación:

  • HR: Human Resources.
  • CO: Customer Orders.
  • SH: Sales History.
  • OE: Order Entry (Obsoleto - No se actualiza más).
  • PM: Product Media (Obsoleto - No se actualiza más).

La instalación de los mismos solía ser una tarea "tediosa" ya que los scripts para instalarlos debían ser ejecutados por un usuario con permisos de DBA y no permitia elegir un esquema, siendo obligatorio instalarlo en el esquema provisto.

Instalación en Oracle 23c (en realidad Oracle 19c en adelante)

Oracle Database 23c incluye un nuevo conjunto de scripts para instalar los esquemas de ejemplo, que pueden ser instalados en cualquier base de datos Oracle 19c o posterior, y que no requieren de permisos de DBA ni la utilización de SQL*Loader.

Los mismos se encuentran disponibles en el repositorio de Oracle Samples en GitHub.


Descargando el archivo

Podemos descargar el archivo que contiene los esquemas usando el siguiente comando en Linux:

wget https://github.com/oracle-samples/db-sample-schemas/archive/refs/tags/v23.1.zip

Luego de descargado, debemos descompactar el mismo usando unzip:

unzip v23.1.zip

Este paso va a crear una carpeta "db-samples-schemas-23.1" que contiene los scripts necesarios para instalar los cinco esquemas mencionados anteriormente.


Instalando el esquema HR

En este artículo vamos a usar el esquema HR como ejemplo, pero lo vamos a instalar en otro usuario ya existente de la base de datos, en este caso llamado RRHH, a diferencia de los scripts anteriores que no permitian usar otro usuario y debían ser ejecutados por un usuario DBA.

Debemos asegurarnos que el usuario deseado (en este caso RRHH) tenga permisos para crear objetos (en Oracle 23c se puede hacer fácilmente, como contamos en el artículo "Oracle 23c - Nuevo Rol DB_DEVELOPER_ROLE") y que tenga cuota sobre algun tablespace para poder crear los objetos.

En el directorio "human_resources" ubicado dentro de "db-samples-schemas-23.1" vamos a encontrar los siguientes archivos:

  • hr_create.sql
  • hr_populate.sql
  • hr_code.sql
  • hr_install.sql
  • hr_uninstall.sql
  • README.md
  • README.txt

Lo que debemos hacer a continuación es conectarnos a la base de datos con el usuario RRHH y ejecutar el siguiente script:

@hr_create

Este script crea los objetos de datos (tablas, vistas, índices) del esquema HR en el usuario en el que nos encontramos conectado.


A continuación, vamos a llenar las tablas creadas en el paso anterior mediante el siguiente script:

@hr_populate


El paso final es crear los triggers y procedimientos del esquema, en este caso con el siguiente script:

@hr_code


Y podemos usar el siguiente script para confirmar que todos los objetos del esquema HR han sido creados en el esquema destino:

col user format a20
col object_name format a30
col object_type format a20
SELECT user, object_name, object_type FROM user_objects;


Obteniendo el siguiente resultado:

USER OBJECT_NAME OBJECT_TYPE -------------------- ------------------------------ -------------------- RRHH DEPARTMENTS_SEQ SEQUENCE RRHH JOBS TABLE RRHH JOB_ID_PK INDEX RRHH EMPLOYEES TABLE RRHH EMP_EMAIL_UK INDEX RRHH EMP_EMP_ID_PK INDEX RRHH EMPLOYEES_SEQ SEQUENCE RRHH JOB_HISTORY TABLE RRHH JHIST_EMP_ID_ST_DATE_PK INDEX RRHH EMP_DETAILS_VIEW VIEW RRHH EMP_DEPARTMENT_IX INDEX RRHH EMP_JOB_IX INDEX RRHH EMP_MANAGER_IX INDEX RRHH EMP_NAME_IX INDEX RRHH DEPT_LOCATION_IX INDEX RRHH JHIST_JOB_IX INDEX RRHH JHIST_EMPLOYEE_IX INDEX RRHH JHIST_DEPARTMENT_IX INDEX RRHH LOC_CITY_IX INDEX RRHH LOC_STATE_PROVINCE_IX INDEX RRHH LOC_COUNTRY_IX INDEX RRHH SECURE_DML PROCEDURE RRHH SECURE_EMPLOYEES TRIGGER RRHH ADD_JOB_HISTORY PROCEDURE RRHH UPDATE_JOB_HISTORY TRIGGER RRHH REG_ID_PK INDEX RRHH REGIONS TABLE RRHH COUNTRIES TABLE RRHH COUNTRY_C_ID_PK INDEX RRHH LOCATIONS TABLE RRHH LOC_ID_PK INDEX RRHH LOCATIONS_SEQ SEQUENCE RRHH DEPARTMENTS TABLE RRHH DEPT_ID_PK INDEX

34 rows selected


Podemos consultar alguna de las tablas:


Scripts Adicionales

El script "hr_install.sql" puede utilizarse, conectado con un usuario con permisos de DBA, para hacer la instalación completa del esquema HR, incluyendo la creación de dicho usuario.

El script "hr_uninstall.sql" puede utilizarse, conectado con un usuario con permisos de DBA, para hacer la desinstalación completa del esquema HR, incluyendo la eliminación de dicho usuario.


Nota: Los pasos de instalación, desinstalación o creación manual son similares para cualquiera de los esquemas de ejemplo provistos, sólo se deben usar los scripts similares disponibles en los otros directorios.


Conclusión

La instalación de los esquemas de ejemplo de Oracle 23c ha sido optimizada para que se puedan utilizar por cualquier usuario sin necesidad de permisos de DBA.


Si desean conocer más sobre Oracle 23c, es recomendable que vean estos artículos en este blog como punto de partida:

Adicionalmente, pueden consultar todos los artículos relacionados a Oracle Database 23c agrupados en en el tag Database 23c.


No hay comentarios.:

Publicar un comentario