473,396 Members | 1,861 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

array parameter in plpgsql function

Hi team,

I am creating a function that would accept an array of integer as its parameter. I have a table where one of its column is declared as an array. This is an excerpt from the script that I was creating:

Expand|Select|Wrap|Line Numbers
  1. create or replace function insert_busshours(bigint, varchar, integer[]) returns integer as
  2. '
  3.     begin
  4.        insert into businesshours values ($1,$2,$3);
  5.        return ''0'';
  6.  
  7.     end;
  8. '
  9. language 'plpgsql';
This is how I called this script:

Expand|Select|Wrap|Line Numbers
  1. select insert_busshours (5,'tues','{10,23}');
Then I got the following error:
ERROR: function insert_busshours(integer, "unknown", "unknown") is not unique
HINT: Could not choose a best candidate function. You may need to add explicit type casts.


Can someone help me point out where the problem is? Thanks for your answers as always.
Jul 20 '07 #1
2 10277
michaelb
534 Expert 512MB
Postgresql supports function overloading, so I think while working on it you probably defined a similar function with the same name but slightly different argument types.
When you call this function the server cannot figure out which instance to invoke, hence the error.

Look at all functions with the name insert_busshours and drop everything you don't need.

If you don't have any tools you can do it at the psql prompt:
Expand|Select|Wrap|Line Numbers
  1. -- this command displays the basic info on given function 
  2. postgres=# \df  insert_busshours
  3. -- get more details with extended option
  4. postgres=# \df+  insert_busshours
  5.  
Jul 20 '07 #2
hi michaelb,

Thank you very much!! It worked now. I am so happy to have you here in thescript. You've helped me a lot already. ^^
Jul 23 '07 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

6
by: Martin Marques | last post by:
We are trying to make some things work with plpgsql. The problem is that I built several functions that call one another, and I thought that the way of calling it was just making the assign: ...
2
by: Miso Hlavac | last post by:
hello, it is possible to write something similar??? create function get_count(varchar(32)) RETURNS int4 AS ' DECLARE tmp int4; BEGIN SELECT COUNT(*) INTO tmp FROM $1; RETURN tmp;
1
by: CSN | last post by:
Is there a way to declare an array in plpgsql so that it's empty (not NULL)? The following causes arr to end up being NULL: arr varchar; -- do stuff with arr.. arr = array_append(arr, '','');...
3
by: K. Deepa | last post by:
Hi all, I am using postgresql7.4. How to handle arrays in plpgsql. How can I pass an array. Is it possible to retrieve values from an array by indexing it like argument : '{1,2,3}' Return...
8
by: Andy Kriger | last post by:
I would like to select strings from a table and return them as an array For example, select new_array(name) from my_tbl would return String { name1, name2, name3, etc } Is this possible with...
1
by: Thomas Schoen | last post by:
Hi, is it possible to use a parameter of a plpgsql-function to order a selection inside the function? What i would like to do is pass a column-name/alias-name to a plpgsql function and use...
1
by: Josué Maldonado | last post by:
Hello list, Is there a way to pass a collection of values (array) to a a function in plpgsql? Thanks in advance -- Sinceramente,
1
by: Karl O. Pinc | last post by:
FYI, mostly. But I do have questions as to how to write code that will continue to work in subsequent postgresql versions. See code below. begintest() uses EXIT to exit a BEGIN block from...
1
by: Alexander Pucher | last post by:
Hi, struggling around with this for some time: How can I use a table name as a parameter in a PL/pgSQL function ?? I tried this but it didn't work... CREATE OR REPLACE FUNCTION...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.