Обсуждение: EXECUTE with a prepared plan and NULL
Hello!
I'm trying to run this code in one of my stored procedures
s := 'execute prepared_plan( ' || id_engine || ',' || id_search || ',' || id_rsite || ')';
execute s;
where "prepared_plan" is a statement defined before with PREPARE.
The thing is, that if i one of the parameters is NULL, then string s becomes NULL also ( because NULL||"any string" = NULL) and as a result i get this error -
ERROR: cannot EXECUTE a null querystring
CONTEXT: PL/pgSQL function "factorize" line 148 at execute statement
how this can be solved? (I want to send NULL to the prepared statement when one of the parameters is null)
Another small question -
Why when i remove the "execute" from the beginning of s and run it like this -
s := 'prepared_plan( ' || id_engine || ',' || id_search || ',' || id_rsite || ')';
execute s;
then i get a syntax error?
Thank you!
I'm trying to run this code in one of my stored procedures
s := 'execute prepared_plan( ' || id_engine || ',' || id_search || ',' || id_rsite || ')';
execute s;
where "prepared_plan" is a statement defined before with PREPARE.
The thing is, that if i one of the parameters is NULL, then string s becomes NULL also ( because NULL||"any string" = NULL) and as a result i get this error -
ERROR: cannot EXECUTE a null querystring
CONTEXT: PL/pgSQL function "factorize" line 148 at execute statement
how this can be solved? (I want to send NULL to the prepared statement when one of the parameters is null)
Another small question -
Why when i remove the "execute" from the beginning of s and run it like this -
s := 'prepared_plan( ' || id_engine || ',' || id_search || ',' || id_rsite || ')';
execute s;
then i get a syntax error?
Thank you!
"sergey kapustin" <kapustin.sergey@gmail.com> writes:
> The thing is, that if i one of the parameters is NULL, then string s becomes
> NULL also ( because NULL||"any string" = NULL) and as a result i get this
> error -
> ERROR: cannot EXECUTE a null querystring
quote_nullable() might help.
regards, tom lane