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

Método de recopilación:función COUNT en Oracle Database

Mencioné en el tutorial anterior que hay 7 funciones de colección. Entre estas siete funciones de colección, COUNT ( ) es la primera que vamos a explorar en este tutorial. Si está siguiendo esta serie de PL/SQL Collection, entonces ya debe haber encontrado esta función de recopilación. Pero a partir de hoy hemos dedicado un blog completo a este tema, por lo que nos tomaremos la libertad de explorar el método de recopilación COUNT ( ) en detalle.

¿Qué es el método de recopilación COUNT ( )?

El método de colección COUNT ( ) devuelve el número de elementos en una colección de inicialización. Si se usa con una colección de inicialización sin elementos; devuelve cero.

¡Confundido! ¿Por qué denotamos funciones y procedimientos de recolección como Método de recolección? Lea Introducción a los métodos de recolección para encontrar la respuesta.

¿Cuándo el método de recopilación COUNT ( ) devuelve cero?

El método de colección COUNT ( ) devuelve cero cuando se aplica o se usa con una colección de inicialización (es decir, VARRAY y tablas anidadas) sin elementos. También devuelve cero como resultado cuando se usa con una matriz asociada vacía.

¿Firma del método de recopilación COUNT ( )?

La firma de la función CONTAR es –

FUNCIÓN CONTADOR RETORNO PLS_INTEGER;

Lectura sugerida:Funciones PL/SQL

¿El método de recopilación COUNT ( ) funciona igual con una tabla anidada?

No. Esto se debe a que COUNT ( ), devuelve el número de elementos no vacíos en una tabla anidada, ya que es posible que una tabla anidada de colección tenga elementos individuales vacíos.

¿Por qué diablos recibo el error 'Collection_IS_NULL'?

Parece que está utilizando COUNT ( ) con una colección no inicializada. Cada vez que aplica la función de colección COUNT ( ) a una colección no inicializada (es decir, tablas anidadas y VARRAY), genera la excepción 'Collection_Is_Null', que es una excepción predefinida en Oracle Database.

Como las matrices asociativas no requieren inicialización, no obtendrá esta excepción con ellas. Puede leer más sobre matrices asociativas aquí.

Ejemplos del método de recopilación COUNT ( )

Ejemplo 1:calcular el número total de elementos almacenados en una tabla anidada.

Puede usar la función COUNT ( ) para calcular el número total de elementos almacenados en una colección, como una tabla anidada.

SET SERVEROUTPUT ON;DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table :=my_nested_table (9,18,27,36,45,54,63,72,81,90);BEGIN DBMS_OUTPUT.PUT_LINE ('El tamaño de la tabla anidada es ' ||var_nt.count);END; //pre> 

Avanzar; copie y pegue el código anterior en su IDE y vea el resultado.

Ejemplo 2. Función COUNT ( ) con condición IF

Puede usar la función COUNT ( ) para controlar el flujo del programa usando una condición. Entonces, escribamos un programa muy simple que demostrará cómo usar el método de recopilación COUNT ( ) con la condición IF.

SET SERVEROUTPUT ON;DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table :=my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN IF var_nt.count>=10 THEN DBMS_OUTPUT.PUT_LINE ('ya ha insertado 10 elementos en su Nested mesa.'); DBMS_OUTPUT.PUT_LINE ('¿Está seguro de que desea insertar más?'); FIN SI;FIN;/

De manera similar, puede usar el método de recopilación COUNT () con Loops. Puede ver el tutorial de PL/SQL sobre el mismo tema para aprender a hacerlo. Puedes encontrar el video aquí.

Esa es una demostración muy simple. Estoy seguro de que puedes encontrar algunos ejemplos más locos. Entonces, ¿qué estás esperando? Adelante, escribe tu código y mira de qué otras formas posibles puedes usar este método.

Si desea que revise su código, puede compartirlo conmigo en mi página de Facebook o también en mi Twitter.

¿Qué te parece este blog? ¿Hay algo que quieras que mejoremos? Cuéntanos lo que sientes en nuestra página de Facebook y en nuestro Twitter.

¡Gracias y que tengas un gran día!