From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Shaun Clements <ShaunC(at)relyant(dot)co(dot)za> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Postgres mystery |
Date: | 2005-03-30 07:45:26 |
Message-ID: | 20050330074526.GA17742@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Wed, Mar 30, 2005 at 09:11:09AM +0200, Shaun Clements wrote:
> Can anyone tell me what the problem is here:
> I am inserting into a table via a stored procedure, to a few columns within
> the table and postgres is throwing a
> CANNOT EXECUTE NULL QUERY.
>
> EXECUTE ''INSERT INTO table (column1, column2, column3,
> ''||quote_ident(column4)||'') values
> (''||quote_literal(RECORDNAME.column1)||'',''||quote_literal(RECORDNAME.colu
> mn2)||'',''''stringvalue'''',''||quote_literal(RECORDNAME.column2)||'')'';
One of the operands to || is probably NULL, so the entire INSERT
string ends up being NULL. Example:
SELECT 'abc' || 'def';
?column?
----------
abcdef
(1 row)
SELECT 'abc' || NULL;
?column?
----------
(1 row)
Looks like you need to check for NULL or use COALESCE to convert
NULL to something else.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/
From | Date | Subject | |
---|---|---|---|
Next Message | Shaun Clements | 2005-03-30 08:48:22 | Re: Postgres mystery |
Previous Message | Richard Huxton | 2005-03-30 07:41:22 | Re: Postgres mystery |