ON PostgreSQL 9.6.10 (Red Hat 4.8.5-28), 64-bit
select string_to_array('file.name.pdf', '.')
{file,nome,pdf}
select array_length(string_to_array('file.nome.pdf', '.'))
[42883]: ERROR: function array_length(text[]) does not exist
SELECT length(string_to_array('file.nome.pdf', '.'));
[42883]: ERROR: function length(text[]) does not exist
I would like return 3 like result of length of array of elements. I would like to use it into function to manage fileName.
elements = string_to_array('file.name.pdf', '.');
extention = elements[array_length(elements)]; -- LAST single extension es: doc, pdf, svg, html, ...
file_name = STRING_AGG(elements[:array_length(elements-1)]; -- "file.name" for "file.name.pdf"
As documented in Array Functions and Operators, you need to pass a dimension index to array_length
, even if your array is one-dimensional.
select array_length(string_to_array('file.nome.pdf', '.'), 1)