En Oracle, el LPAD() La función le permite rellenar la parte izquierda de una cadena con un cierto carácter, hasta un número específico de caracteres.
La forma en que funciona es que usted especifica qué tan larga debe ser la cadena resultante. Si la cadena original es más corta, el carácter de relleno llena el espacio restante.
Sintaxis
La sintaxis es así:
LPAD(expr1, n [, expr2 ]) Dónde:
expr1yexpr2puede ser cualquiera de los tipos de datosCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOBoNCLOB.nes unNUMBERentero o un valor que se puede convertir implícitamente en unNUMBERentero.
La función devuelve expr1 , con relleno a la izquierda hasta la longitud n caracteres con la secuencia de caracteres en expr2 .
Si expr2 se omite, el carácter de relleno es un solo espacio en blanco.
Ejemplo
Aquí hay un ejemplo simple para demostrarlo:
SELECT LPAD('Cat', 5)
FROM DUAL; Resultado:
LPAD('CAT',5)
________________
Cat Tenga en cuenta que el número proporcionado es el ancho total de la cadena resultante:no la cantidad de relleno.
Aquí está nuevamente en comparación con la cadena original (sin relleno):
SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL; Resultado:
LPAD('CAT',5)
________________
Cat
Cat Especifique un carácter
En este ejemplo, especifico un carácter para usar como relleno:
SELECT LPAD('Cat', 5, '>')
FROM DUAL; Resultado:
LPAD('CAT',5,'>')
____________________
>>Cat Relleno más pequeño que la cadena original
Si el segundo argumento es menor que la cadena original, no se agrega relleno y la cadena original se acorta al número de caracteres especificado:
SELECT LPAD('Cat', 2)
FROM DUAL; Resultado:
LPAD('CAT',2)
________________
Ca Ejemplo de base de datos
Este es un ejemplo de cómo rellenar la parte izquierda de los valores en una columna de base de datos:
SELECT
country_name,
LPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY; Resultado:
COUNTRY_NAME PADDED _______________ _______________ Argentina ...Argentina Australia ...Australia Belgium .....Belgium Brazil ......Brazil Canada ......Canada
Valores nulos
Si alguno de los argumentos es null el resultado es null :
SET NULL 'null';
SELECT
LPAD(null, 3),
LPAD('Cat', null),
LPAD('Cat', 3, null)
FROM DUAL; Resultado:
LPAD(NULL,3) LPAD('CAT',NULL) LPAD('CAT',3,NULL)
_______________ ___________________ _____________________
null null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre como resultado de un SQL SELECT declaración.
Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a LPAD() sin pasar ningún argumento devuelve un error:
SELECT LPAD()
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT LPAD() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL; Resultado:
Error starting at line : 1 in command -
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL
Error at Command Line : 1 Column : 28
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 - "too many arguments for function"
*Cause:
*Action: