3

How can I create function that accepts arguments of any type.

I can create function like this: CREATE FUNCTION test(anyelement,anyelement) ...

But when I call it, I have to present arguments of same type:

SELECT test(1,2); -- ok

But:

SELECT test('lalala',2); -- error

Can I create a function that will accept arguments of any type, then cast them to string and do something with this strings.

So, can I create function that will look like concat(str "any" [, str "any" [, ...] ])

UPD: updated second example

1
  • ERROR: function test(character varying, integer) does not exist Commented May 28, 2012 at 8:37

1 Answer 1

4

There is a simple alternative. Every type can be cast to text. You can just create a function:

CREATE FUNCTION test(text, text [,text [, ...]]) ...

And call it:

SELECT test('lalala'::text,2::text);

Just cast each argument to text explicitly.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.