Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Exploración de funciones SQL en Oracle Database 23ai
Introducción
Vamos a aprender 10 características en este tutorial que usted necesita saber y cómo se comparan con sus homólogos existentes. Estas funciones son:
- cláusula
FROM
(opcional). BOOLEAN
para SQL.- Cláusula
IF NOT EXISTS
del lenguaje de definición de datos (DDL). INSERT
multivalores.- Nuevo constructor de tabla
VALUE
. - Alias en la cláusula
GROUP BY
. - Cláusula
RETURNING
de las sentenciasUPDATE
yMERGE
. - Uniones en
UPDATE
yDELETE
. - Anotaciones, nuevos metadatos para objetos de base de datos.
- Tipos de objetos ligeros con dominios SQL.
Objetivos
-
Usar SQL sin la cláusula
FROM
: permite activar consultas más sencillas eliminando el requisito de utilizar la cláusulaFROM
al seleccionar expresiones o funciones incorporadas. -
Implantar el tipo de dato
BOOLEAN
nativo en SQL: utilice el tipo de datoBOOLEAN
nativo en tablas, consultas y condiciones SQL para un manejo lógico más intuitivo verdadero/falso. -
Utilizar
IF NOT EXISTS
en sentencias DDL: simplifique la lógica de creación y supresión de objetos mediante la ejecución condicional de sentenciasCREATE
yDROP
sin comprobaciones PL/SQL adicionales. -
Realizar operaciones
INSERT
de varios valores: inserte varias filas en una única sentenciaINSERT
para mejorar la legibilidad del código y reducir las vueltas a la base de datos. -
Utilizar el constructor de valores de tabla para juegos de datos en línea: cree juegos de filas temporales directamente en SQL mediante el constructor
VALUES
, soportando operaciones comoMERGE
,SELECT
o comparación. -
Alias de columna de referencia en cláusulas GROUP BY: mejore la legibilidad de las consultas al permitir el uso de alias
SELECT
enGROUP BY
en lugar de expresiones repetitivas. -
Aproveche las cláusulas
RETURNING
enUPDATE
yMERGE
: recupere los datos afectados directamente de las sentenciasUPDATE
yMERGE
sin necesidad de realizar una consulta de seguimiento. -
Realizar uniones en sentencias
UPDATE
yDELETE
: utilice la lógicaJOIN
directamente en las operacionesUPDATE
yDELETE
para modificar o eliminar registros en función de las condiciones de tabla relacionadas. -
Anotar objetos de base de datos con metadatos: documente los objetos de base de datos mediante
ANNOTATION
para almacenar metadatos descriptivos (por ejemplo, propietario, finalidad) para facilitar el mantenimiento y la introspección. -
Definir tipos de objetos ligeros mediante dominios SQL: cree tipos de dominio reutilizables con restricciones para forzar la consistencia y una escritura sólida en varias tablas.
Requisitos
-
Conocimientos básicos de SQL.
-
Comprender la sintaxis SQL:
SELECT
,INSERT
,UPDATE
,DELETE
,JOIN
,GROUP BY
, etc. -
Familiaridad con los conceptos y tipos de dato de las bases de datos relacionales.
-
-
Experiencia con Oracle Database 23ai y sus versiones anteriores.
-
Conocimiento del funcionamiento del DDL, el lenguaje de manipulación de datos (DML) y PL/SQL en Oracle Database 19c, Oracle Database 21c y versiones anteriores.
-
Conocimiento de funciones específicas de Oracle como
DUAL
,MERGE
,RETURNING INTO
, etc.
-
-
Acceso al entorno de Oracle Database 23ai.
-
Tener acceso a Oracle Database 23ai (configuración local, instancia en la nube o Oracle Live SQL).
-
Algunas funciones (como los dominios SQL o
BOOLEAN
) solo funcionan en Oracle Database 23ai.
-
-
Herramientas de GUI, SQL*Plus o SQLcl (como SQL Developer o DataGrip). Capacidad para ejecutar y probar sentencias SQL en una interfaz compatible.
-
Conceptos Fundamentales de PL/SQL (para funciones avanzadas). Para utilizar
RETURNING INTO
, bloques de procedimiento y manejo de SQL dinámico. -
Conocimiento de restricciones y reglas de integridad de datos. Necesario para comprender los dominios SQL y las restricciones de tabla.
-
Familiaridad con las vistas del diccionario de datos de Oracle. Para consultar anotaciones o metadatos. Por ejemplo,
USER_TABLES
,USER_ANNOTATIONS
. -
Rol y privilegios en Oracle Database. La capacidad de crear/modificar tablas, dominios y anotaciones requiere privilegios de usuario adecuados.
-
Conocimiento de la versión. Asegúrese de que sus herramientas y clientes admiten las funciones de Oracle Database 23ai (es posible que fallen los controladores o las herramientas anteriores).
-
(Opcional) Exposición a otros dialectos SQL modernos (PostgreSQL, MySQL, etc.). Esto le ayudará a apreciar la compatibilidad cruzada de nuevas funciones como
VALUES
,BOOLEAN
yIF EXISTS
.
Función 1: Utilizar la cláusula FROM
Una característica interesante introducida en Oracle Database 23ai es la opcionalidad de la cláusula FROM
en las sentencias SELECT
. Hasta esta versión, se necesitaba la cláusula FROM
.
Estas son algunas ventajas potenciales de una función SELECT
sin FROM
en Oracle Database 23ai.
-
Seleccione la fecha actual para facilitar la manipulación de datos.
SELECT CURRENT_DATE;
-
Operaciones o cálculos matemáticos sin implicar datos de tabla.
SELECT 25.50*25.25; 25.50*25.25 ----------- 643.875 Elapsed: 00:00:00.002 1 rows selected.
-
Bloque PL/SQL sin utilizar la cláusula
FROM
.CREATE SEQUENCE empno_seq INCREMENT BY 1 START WITH 1 MINVALUE 1 MAXVALUE 1000; Sequence EMPNO_SEQ created. Elapsed: 00:00:00.005 declare v1 number; begin select empno_seq.nextval into v1; dbms_output.put_line ('v1= '||v1); end; / v1= 1 PL/SQL procedure successfully completed. Elapsed: 00:00:00.009
-
Funciones incorporadas o definidas por el usuario para realizar operaciones o recuperar valores.
SELECT DBMS_RANDOM.VALUE() as random_number;
-
Manipulaciones o conversiones de cadenas sin depender de datos de tabla.
SELECT UPPER('oracle') AS uppercase_text;
-
Expresiones condicionales o lógicas sin utilizar una tabla.
SELECT CASE WHEN 10 > 5 THEN 'True' ELSE 'False' END AS result;
Función 2: Uso del tipo de dato BOOLEAN
Oracle Database 23ai presenta el nuevo tipo de datos BOOLEAN
. Esto aprovecha el uso de verdaderas columnas/variables booleanas, en lugar de simularlas con un valor numérico o Varchar. La capacidad de escribir predicados booleanos simplifica la sintaxis de las sentencias SQL.
-
Cree una tabla denominada
TEST_BOOLEAN
.CREATE TABLE IF NOT EXISTS TEST_BOOLEAN (name VARCHAR2(100), IS_SLEEPING BOOLEAN); Table TEST_BOOLEAN created. Elapsed: 00:00:00.004
-
Introduzca los datos en la tabla nueva. El valor
IS_SLEEPING
seráNOT NULL
definido enFALSE
como valor por defecto.ALTER TABLE TEST_BOOLEAN modify (IS_SLEEPING boolean NOT NULL);
ALTER TABLE TEST_BOOLEAN modify (IS_SLEEPING default FALSE); Table TEST_BOOLEAN altered. Elapsed: 00:00:00.014
Aquí, puedes ver los diferentes tipos de entrada booleana para Mick, Keith y Ron. Todos son válidos. Para Mick, se utiliza el valor predeterminado FALSE (FALSO): Mick no está dormido.
1 row inserted. Elapsed: 00:00:00.006
Para Keith, utilizamos un valor NO: Keith NO está dormido.
INSERT INTO TEST_BOOLEAN (name, is_sleeping) values ('Keith','NO'); 1 row inserted. Elapsed: 00:00:00.002
Y para Ron utilizamos un valor de 1: Ron está durmiendo.
-
Vea algunos resultados basados en nuestros valores booleanos.
SELECT * FROM test_boolean;
Ya no necesitas recordar qué tipo de sistema booleano pones en marcha. Como hemos mostrado, el uso de 0/1, True/False, Yes/No o cualquier otra entrada común devolverá un valor de tabla preciso.
Función 3: Uso de la cláusula DDL IF NOT EXISTS
A partir de Oracle Database 23ai, la nueva cláusula DDL IF NOT EXISTS
permite decidir cómo se manejarán los errores DDL. Esto simplifica el script DDL, ya que los posibles errores debidos a la existencia o inexistencia de objetos se pueden ocultar en el script.
-
Primero, prueba sin usar esta nueva función. Ejecute la siguiente sentencia.
DROP TABLE DEPT;
Puesto que no hay ninguna tabla
DEPT
para borrar, veremos un error:ORA-00942: table or view does not exist
. -
Sin embargo, en Oracle Database 23ai, podemos utilizar
DROP IF EXISTS
sin ningún error. Esto nos da tranquilidad evitando errores. Ahora, ejecute la misma sentencia, pero incluya esta nueva funciónIF EXISTS
.DROP TABLE IF EXISTS DEPT;
-
Del mismo modo, podemos utilizar esta función para crear tablas, si aún no existen. Cree esa tabla
DEPT
.CREATE TABLE IF NOT EXISTS DEPT (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ;
-
Utilice esta función para crear más tablas de ejemplo a lo largo de este tutorial. Aquí, crearemos una tabla de empleados denominada
EMP
.CREATE TABLE IF NOT EXISTS EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT); Table EMP created. Elapsed: 00:00:00.006
Función 4: Uso de INSERT
para varias filas
Otra característica interesante que garantiza una mejor coexistencia y compatibilidad con otros sistemas de gestión de bases de datos utilizados con frecuencia es la sentencia INSERT
con varios valores.
-
En versiones anteriores de la base de datos Oracle, por ejemplo, la inserción de varias filas requería una sentencia de inserción independiente para cada fila.
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS'); INSERT INTO DEPT VALUES (30,'SALES','CHICAGO'); INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON'); INSERT INTO DEPT VALUES (50,'HR','LOS ANGELES'); INSERT INTO DEPT VALUES (60,'IT','SAN FRANCISCO'); INSERT INTO DEPT VALUES (70,'MANUFACTURING','DETROIT');
Oracle Database 23ai ha introducido la nueva sintaxis que permite insertar todas estas filas en una sola sentencia
INSERT
, por lo que puede insertar varias tuplas en un DML. Ejecute la siguiente sentencia.INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK'), (20,'RESEARCH','DALLAS'), (30,'SALES','CHICAGO'), (40,'OPERATIONS','BOSTON'), (50,'HR','LOS ANGELES'), (60,'IT','SAN FRANCISCO'), (70,'MANUFACTURING','DETROIT');
Además de una mejor compatibilidad con otras bases de datos, esta sentencia se puede utilizar para garantizar la coherencia de algunas operaciones de inserción en modo de confirmación automática. Esto podría ser importante, por ejemplo, para que las aplicaciones de Oracle APEX que utilizan este modo funcionen con datos.
-
Ejecute la siguiente sentencia para utilizar esta función para rellenar los valores de la tabla
EMP
.INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20), (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30), (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30), (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20), (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30), (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30), (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10), (7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20), (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10), (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30), (7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20), (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30), (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20), (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
Característica 5: Utilizar el nuevo constructor VALUE
A partir de la base de datos Oracle 23ai, se ha ampliado el constructor de valores de tabla. Ahora se puede utilizar en sentencias INSERT
para crear varias filas en un único comando. También se puede utilizar en sentencias SELECT
y en la sintaxis de factorización de vista. En este último caso, simplifica la sintaxis de las sentencias y evita el uso de la tabla DUAL
.
La siguiente sentencia parece un tipo de función de tabla sobre la marcha.
SELECT * FROM (VALUES (50,'HR'), (60,'DEV'), (70,'AI')) virt_dept (deptno, dname);
Función 6: Uso de alias en la cláusula GROUP BY
Oracle Database 23ai introduce la capacidad de utilizar alias en la cláusula GROUP BY
de una sentencia SELECT
. Esta función simplifica la escritura de consultas con expresiones complejas y garantiza una mejor compatibilidad con otras bases de datos relacionales, como Teradata, MySQL y PostgreSQL.
Por ejemplo:
SELECT to_char(hiredate,'YYYY') "Year", count(*)
FROM emp
GROUP BY to_char(hiredate,'YYYY');
En Oracle Database 23ai, se puede escribir de una forma más sencilla, como se muestra en la siguiente imagen:
Función 7: Uso de la cláusula RETURNING
de la sentencia UPDATE
y MERGE
Esta cláusula se había aplicado anteriormente como parte de la sentencia EXECUTE IMMEDIATE
. Sin embargo, en Oracle Database 23ai podemos encontrarlo como parte de las sentencias DML estáticas tradicionales.
-
En este caso, permite obtener valores antiguos y nuevos de columnas de una fila procesada. Primero, veamos el salario actual de King.
SELECT ename, sal FROM emp WHERE ename = 'KING';
-
Para utilizar variables en LiveSQL, terminaremos las sentencias en PL/SQL. Ejecute este script. En primer lugar, creará las variables para el salario nuevo y antiguo y, a continuación, actualizará el salario de King mediante la cláusula
RETURNING
para definir nuestras variables. A continuación, observaremos los resultados.BEGIN DECLARE old_salary NUMBER; new_salary NUMBER; BEGIN UPDATE emp SET sal = sal + 1000 WHERE ename = 'KING' RETURNING OLD sal, NEW sal INTO old_salary, new_salary; DBMS_OUTPUT.PUT_LINE('Old Salary: ' || old_salary); DBMS_OUTPUT.PUT_LINE('New Salary: ' || new_salary); END; END;
Old Salary: 6000 New Salary: 7000
En este ejemplo se ha utilizado una sentencia
UPDATE
, pero la cláusulaRETURNING
se puede utilizar de forma similar con sentenciasMERGE
.
Función 8: Uso de uniones en UPDATE
y DELETE
Puede actualizar los datos de la tabla mediante uniones basadas en condiciones de tabla ajena. No es necesario utilizar subselecciones ni la cláusula IN
.
-
Ejecute la siguiente sentencia para ver la información de salario del empleado del departamento de investigación.
select e.sal, e.empno from emp e, dept d where e.deptno=d.deptno and d.dname='RESEARCH';
-
Para actualizar la información salarial, antes de Oracle Database 23ai necesitamos utilizar una sentencia anidada.
UPDATE emp e set e.sal=e.sal*2 WHERE e.deptno in (SELECT d.deptno FROM dept d WHERE e.deptno=d.deptno and d.dname='RESEARCH');
Con Oracle Database 23ai, puede utilizarlo de la siguiente manera:
UPDATE emp e set e.sal=e.sal*2 FROM dept d WHERE e.deptno=d.deptno and d.dname='RESEARCH';
-
Puede ver que el salario se ha actualizado correctamente.
select e.sal, e.empno from emp e, dept d where e.deptno=d.deptno and d.dname='RESEARCH';
Función 9: Uso de anotaciones
Las anotaciones son metadatos opcionales para los objetos de base de datos. Una anotación es un par nombre-valor o un nombre por sí mismo. El nombre y el valor opcional son campos de texto de formato libre. Una anotación se representa como un elemento subordinado al objeto de base de datos al que se ha agregado la anotación. Los objetos de esquema soportados incluyen tablas, vistas, vistas materializadas e índices. Con las anotaciones, puede almacenar y recuperar metadatos sobre objetos de base de datos. Puede utilizarlo para personalizar la lógica de negocio, las interfaces de usuario o proporcionar metadatos a los repositorios de metadatos. Se puede agregar con una sentencia CREATE
o ALTER
en el nivel de tabla o columna.
Con las anotaciones, puede almacenar y recuperar metadatos sobre objetos de base de datos. Puede utilizarlo para personalizar la lógica de negocio, las interfaces de usuario o proporcionar metadatos a los repositorios de metadatos.
-
Cree una tabla anotada
EMP_ANNOTATED_NEW
con anotaciones de columna y tabla.CREATE TABLE emp_annotated_new (empno number annotations(identity, display 'person_identity', details 'person_info'), ename varchar2(50), salary number annotations (display 'person_salary', col_hidden)) annotations (display 'employee_table');
-
Las vistas del diccionario de datos, como
USER_ANNOTATIONS
yUSER_ANNOTATIONS_USAGE
, pueden ayudar a supervisar el uso.SELECT object_name, object_type, column_name, annotation_name, annotation_value FROM user_annotations_usage;
Función 10: Uso de dominios SQL
Un dominio SQL es un objeto de diccionario que pertenece a un esquema y encapsula un juego de propiedades y restricciones opcionales y se crea con una sentencia CREATE DOMAIN
. Los dominios proporcionan atributos de restricciones, visualización, ordenación y anotaciones. Después de definir un dominio SQL, puede definir las columnas de tabla que se van a asociar a ese dominio, aplicando de forma explícita las propiedades y restricciones opcionales del dominio a esas columnas.
Los dominios SQL permiten a los usuarios declarar el uso previsto para las columnas. Son objetos de diccionario de datos para que los conocimientos específicos de dominio abstracto se puedan reutilizar fácilmente.
-
Cree un dominio denominado
yearbirth
y una tabla denominadaperson
.CREATE DOMAIN yearbirth as number(4) constraint check ((trunc(yearbirth) = yearbirth) and (yearbirth >= 1900)) display (case when yearbirth < 2000 then '19-' ELSE '20-' end)||mod(yearbirth, 100) order (yearbirth -1900) annotations (title 'yearformat');
CREATE TABLE person (id number(5), name varchar2(50), salary number, person_birth number(4) DOMAIN yearbirth ) annotations (display 'person_table');
``` persona descendente;
Nombre ¿Nulo? Tipo
NÚMERO DE IDENTIFICACIÓN(5) NOMBRE VARCHAR2(50) NÚMERO DE SALARIO PERSON_BIRTH NÚMERO(4) NACIMIENTO DEL AÑO DEL DOMINIO
INSERTAR valores de persona (1,'MARTIN', 3000, 1988);
2. With the new function `DOMAIN_DISPLAY` you can display the property.
SELECT DOMAIN_DISPLAY(person_birth) FROM persona;

3. Domain usage and annotations can be monitored with data dictionary views. Let us view `user_annotations_usage`.
SELECCIONE * DE user_annotations_usage;
Define reusable domain types (lightweight objects).
CREAR DOMINIO EmailAddress COMO VARCHAR2(100) COMPRUEBE (REGEXP_LIKE(VALOR, '^[^@]+@[^@]+.[^@]+$'));
CREATE TABLE usuarios (user_id NÚMERO, correo electrónico EmailAddress ); ```
Limitaciones y restricciones en las funciones de Oracle Database 23ai
-
Cláusula
FROM
.-
Solo se aplica a expresiones simples como funciones, literales o variables.
-
No se puede utilizar con consultas que impliquen tablas, uniones o subconsultas.
-
No soportado en el contexto PL/SQL con bucles de cursor que esperan una cláusula
FROM
.
-
-
Tipo de datos
BOOLEAN
nativo.-
Se puede utilizar en columnas y expresiones de tabla.
-
No indexable, no se pueden indexar las columnas con el tipo de dato
BOOLEAN
. -
No se admite directamente en todas las herramientas de cliente o herramientas de informes (puede necesitar traducción a 0/1 o Y/N).
-
No está soportado en algunas API o controladores anteriores (puede que los clientes JDBC/ODBC necesiten actualizaciones).
-
-
IF NOT EXISTS
en DDL.-
Simplifica los scripts DDL idempotentes.
-
Solo disponible para objetos específicos:
TABLE
,INDEX
,SEQUENCE
,VIEW
, etc. -
No todos los tipos de objetos soportan esto (por ejemplo,
TRIGGER
,SYNONYM
aún puede requerir comprobación manual). -
No soportado en versiones anteriores de Oracle.
-
-
INSERT
con varios valores.-
Sintaxis de limpieza para inserciones por lotes.
-
Limitado a juegos de valores explícitos no se puede insertar mediante
SELECT
o subconsultas en la misma cláusulaVALUES
. -
No se puede combinar con la cláusula
RETURNING
para todas las filas insertadas en un paso.
-
-
Constructor de Valores de Tabla (Cláusula
VALUES
).-
Ideal para juegos de filas pequeños y ad hoc.
-
Tiene límites de fila (normalmente 999 o menos según el contexto).
-
No optimizado para cargas a gran escala, es mejor utilizar tablas temporales o temporales para juegos de datos de gran tamaño.
-
-
Alias en la cláusula
GROUP BY
.-
Facilita la lectura y escritura de consultas.
-
No está soportado en todas las funciones analíticas o consultas complejas que implican columnas de subconsulta.
-
Puede causar confusión en las consultas en las que el alias está sobrecargado (por ejemplo, el mismo nombre en la consulta interna).
-
-
Cláusula
RETURNING
enUPDATE
/MERGE
.-
Reduce la necesidad de
SELECT
después de DML. -
Solo se pueden devolver valores de las filas realmente modificadas.
-
No se puede utilizar para actualizaciones masivas sin
FORALL
, debe utilizar PL/SQL conRETURNING BULK COLLECT
explícito.
-
-
Uniones en
UPDATE
yDELETE
.-
Simplifica la lógica de varias tablas.
-
Solo están soportados los tipos
INNER JOIN
yLEFT JOIN
en algunos contextos. -
Puede que sea necesario reescribir la lógica
MERGE
si se utilizan herramientas antiguas o si se necesita compatibilidad con versiones anteriores de Oracle.
-
-
Anotaciones.
-
Excelente para la documentación.
-
Las anotaciones son solo metadatos, no se pueden aplicar en tiempo de ejecución.
-
Necesita el uso de las vistas del diccionario de datos de Oracle (
*_ANNOTATIONS
) para recuperarlas. -
Aún no está integrado en las herramientas de exportación/importación o replicación de Oracle Data Pump.
-
-
Tipos de objetos ligeros con dominios SQL.
-
Aplicación de tipo reutilizable y consistente.
-
Aún menos potente que los tipos de objetos completos (sin métodos, atributos).
-
No hay herencia ni composición, solo para la aplicación de restricciones primitivas.
-
No se pueden definir valores por defecto en el propio dominio (los valores por defecto se siguen especificando en el nivel de columna).
-
Restricciones generales
-
Compatibilidad de herramientas: es posible que muchas herramientas de GUI y bibliotecas de clientes de Oracle anteriores aún no admitan completamente la sintaxis de Oracle Database 23ai (especialmente
VALUES
,BOOLEAN
,DOMAIN
). -
Exportar/Importar: es posible que algunas funciones, como anotaciones o dominios, no se conserven en flujos de trabajo
expdp
/impdp
anteriores. -
Comportamiento experimental: a medida que estas funciones son nuevas, algunas pueden evolucionar en versiones menores: compruebe las notas de los parches y la documentación con frecuencia.
Enlaces relacionados
Acuses de recibo
- Autor: Aditya Srivastawa (arquitecto principal de la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Explore SQL Features in Oracle Database 23ai
G35695-01
Copyright ©2025, Oracle and/or its affiliates.