Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: funciones NVL
Este tutorial de Oracle explica cómo usar Oracle/PLSQL Función NVL Con sintaxis y ejemplos.
describir
Las funciones Oracle/PLSQL NVL le permiten reemplazar un valor cuando encuentra un valor nulo.
sintaxis
La sintaxis de las funciones NVL en Oracle/PLSQL es:
NVL( string1, replace_with )
parámetro o parámetro
string1 La cadena para probar nulo. replace_with Devuelve el valor si string1 está vacío.
devolver los bienes
La función NVL devuelve un valor alternativo.
aplicar para
Las funciones NVL se pueden utilizar en las siguientes versiones de Oracle/PLSQL:
- Oráculo 12c, Oráculo 11g, Oráculo 10g, Oráculo 9i, Oráculo 8i
ejemplo
Veamos algunos ejemplos de funciones NVL de Oracle y exploremos cómo usar las funciones NVL en Oracle/PLSQL.
Por ejemplo:
SELECT NVL(supplier_city, 'n/a') FROM suppliers;
La instrucción SQL anterior devolverá “n/a” si el campo de la ciudad del proveedor contiene un valor nulo. De lo contrario, devuelve el valor de la ciudad_proveedor.
Otro ejemplo del uso de funciones NVL en Oracle/PLSQL es:
SELECT supplier_id, NVL(supplier_desc, supplier_name) FROM suppliers;
Si proveedor_desc contiene un valor nulo, esta instrucción SQL devolverá el campo nombre_proveedor. De lo contrario, devuelve proveedor_desc.
Un ejemplo final del uso de funciones NVL en Oracle/PLSQL es:
SELECT NVL(commission, 0) FROM sales;
Esta instrucción SQL devolverá 0 si el campo de comisión contiene un valor nulo. De lo contrario, devolverá el campo de comisión.
Preguntas frecuentes
P: Estoy tratando de acceder a Oracle DB a través de VB usando la funcionalidad NVL.
Para ser preciso,
SELECT NVL(Distinct (emp_name),'AAA'),................ FROM.................
Recibo un error de Oracle cuando uso la cláusula distintiva en NVL, pero cuando elimino la distinción, funciona bien.
Respuesta: Puede usar la cláusula DISTINCT con la función NVL. Sin embargo, DISTINCT debe aparecer antes de usar la función NVL. Por ejemplo:
SELECT distinct NVL(emp_name, 'AAA') FROM employees;
¡Espero que esto ayude!
Pregunta: ¿Es posible usar funciones NVL para la misma llamada de función con varias columnas? Para ser claros, si necesito aplicar esta función NVL a varias columnas como esta:
NVL(column1;column2 ...... , here is the default value for all )
Respuesta: debe llamar a la función NVL por separado para cada columna. Por ejemplo:
SELECT NVL(table_name, 'not found'), NVL(owner, 'not found') FROM all_tables;