Thread: function length(numeric) does not exist
Version: PostgreSQL 9.2.6, compiled by Visual C++ build 1600, 32-bit =20 When I try to use the function length occurs the error: =20 "ERRO: 42883: fun=E7=E3o length(numeric) n=E3o existe" (function = length(numeric) does not exist). =20 Then I try to create length function: =20 CREATE OR REPLACE FUNCTION length(tsvector) RETURNS int4 AS '$libdir/tsearch2', 'tsvector_length' LANGUAGE 'c' IMMUTABLE STRICT; ALTER FUNCTION length(tsvector) OWNER TO postgres; =20 But the return is: =20 -------------------------------------------------------------------------= --- -------------------------------------------------------------------------= --- -------- =20 ERRO: n=E3o p=F4de encontrar fun=E7=E3o "tsvector_length" no arquivo = "C:/Program Files/PostgreSQL/9.2/lib/tsearch2.dll" (could not find function "tsvector_length" in the file "C:/Program Files/PostgreSQL/9.2/lib/tsearch2.dll") =20 =20 ********** Error ********** =20 ERRO: n=E3o p=F4de encontrar fun=E7=E3o "tsvector_length" no arquivo = "C:/Program Files/PostgreSQL/9.2/lib/tsearch2.dll" (could not find function "tsvector_length" in the file "C:/Program Files/PostgreSQL/9.2/lib/tsearch2.dll") =20 SQL state: 42883 =20 -------------------------------------------------------------------------= --- -------------------------------------------------------------------------= --- -------- =20 I need the help! =20 Thanks! =20
On Sat, Nov 22, 2014 at 9:26 PM, Ricardo Sardinha < ricardo.sardinha@ti.polynorte.com.br> wrote: > "ERRO: 42883: fun=E7=E3o length(numeric) n=E3o existe" (*function > length(numeric) **does not exist*). > length() is not able to accept numeric as input. =3D# select length(123.45); ERROR: 42883: function length(numeric) does not exist LINE 1: select length(123.45); You could cast it to text depending on what you want to do: =3D# select length(123.45::text); length -------- 6 (1 row) Then I try to create *length* function: > > > > CREATE OR REPLACE FUNCTION length(tsvector) > > RETURNS int4 AS > > '$libdir/tsearch2', 'tsvector_length' > > LANGUAGE 'c' IMMUTABLE STRICT; > > ALTER FUNCTION length(tsvector) OWNER TO postgres; > That's because this function is not defined in the extension tsearch2, but is part of core, so you actually do not need to redefine it: =3D# \dfS length List of functions Schema | Name | Result data type | Argument data types | Type ------------+--------+------------------+---------------------+-------- pg_catalog | length | integer | bit | normal pg_catalog | length | integer | bytea | normal pg_catalog | length | integer | bytea, name | normal pg_catalog | length | integer | character | normal pg_catalog | length | double precision | lseg | normal pg_catalog | length | double precision | path | normal pg_catalog | length | integer | text | normal pg_catalog | length | integer | tsvector | normal (8 rows) Regards, --=20 Michael
Ricardo Sardinha wrote > Version: PostgreSQL 9.2.6, compiled by Visual C++ build 1600, 32-bit > "ERRO: 42883: fun=C3=A7=C3=A3o length(numeric) n=C3=A3o existe" (function= length(numeric) > does not exist). >=20 > Then I try to create length function: >=20 > CREATE OR REPLACE FUNCTION length(tsvector) I'm confused...you try and pass a numeric into a length function and when that doesn't work you go and create a length function that takes a tsvector= ? Until you communicate what it is you are trying to accomplish and, ideally, provide some code to help explain the same, it is going to be difficult to provide you with help. David J. -- View this message in context: http://postgresql.nabble.com/function-length-= numeric-does-not-exist-tp5828067p5828105.html Sent from the PostgreSQL - bugs mailing list archive at Nabble.com.