Execute RAISE problems - Mailing list pgsql-novice

From Robert M. Bernabe
Subject Execute RAISE problems
Date
Msg-id 001801c82c95$e91f7000$6501a8c0@calhoun
Whole thread Raw
In response to Re: create constant values  (john@msasystems.net)
List pgsql-novice
Hi,

I've been trying to create a debugging function that would receive a tablename and a list of columns and then the function would display all the contents of the table using the RAISE command.

CREATE OR REPLACE FUNCTION usp_PG_DUMPTEMPTABLE(varchar(100), text[])
RETURNS void AS
$BODY$
DECLARE
_temptable ALIAS FOR $1;
_temparray alias for $2;
_i integer;
_max integer;
_tempstring varchar(2000);

BEGIN
_tempstring := 'RAISE INFO''';
for _i in 1 ..array_upper(_temparray, 1)
loop
_tempstring := _tempstring || _temparray[_i] || ' ' ;
end loop;
_tempstring := _tempstring || ''';';

raise info'%', _tempstring;
execute _tempstring;
raise info '---';

RETURN;
END;
$BODY$
LANGUAGE 'plpgsql';


for some reason, the EXECUTE command issues an error at the start fo the RAISE command...help?

Error from PG Admin III

ERROR: syntax error at or near "RAISE"
LINE 1: RAISE DEBUG 'SKUID CatID ';
^
QUERY: RAISE DEBUG 'SKUID CatID ';
CONTEXT: PL/pgSQL function "usp_pg_dumptemptable" line 42 at EXECUTE statement

Checked all the docs I could find and I couldn't find any info...
 
I couldn't figure out why....so a simple test would be just to execute a literal string (instead of a variable holding a dynamic one) with a raise command...turns out execute cannot run the raise command...
 
e.g.
 execute 'RAISE INFO ''test ''';
 
issues an Error in PG Admin III.
 
any help would be greatly appreciated....I think RAISE was never intended to be used this way...but as you can see in the function, it could prove useful once finished...the ability to display contents of a table for debugging... 
 
Regards
 
 
 

I'm protected by SpamBrave

pgsql-novice by date:

Previous
From: john@msasystems.net
Date:
Subject: Re: create constant values
Next
From: Oliver Elphick
Date:
Subject: Re: sql file in the tutorial directory