Making a prepared statement in a stored procedure
От | Nathan Pickett |
---|---|
Тема | Making a prepared statement in a stored procedure |
Дата | |
Msg-id | BAY18-F34B976DDCCFCFAAA416317A79C0@phx.gbl обсуждение исходный текст |
Список | pgsql-sql |
Hi, I am trying to convert the following function below: ---START FUNCTION create or replace function update_tmp_sales_report_from_archive_with_prospects() returns integer as ' declare row_data record; begin for row_data in select partner_id, count(*) as prospects from prospects_2004_09_01 group by partner_id loop update tmp_sales_report_from_archive set prospects = row_data.prospects where partner_id = row_data.partner_id; end loop; return 1; end; ' language 'plpgsql'; --- END FUNCTION to be able to pass in the table named prospects_2004_09_01, to be prospects_ concatanated with the date, so prospects_2004_08_01, prospects_2004_07_01, etc. I tried the following: -- START TEST FUCTION drop function update_tmp_sales_report_from_archive_with_prospects(text); create or replace function update_tmp_sales_report_from_archive_with_prospects(text) returns integer as ' declare in_t ALIAS FOR $1; row_data record; begin for row_data in select partner_id, count(*) as prospects in_t group by partner_id loop update tmp_sales_report_from_archive set prospects = row_data.prospects where partner_id = row_data.partner_id; end loop; return 1; end; ' language 'plpgsql'; -- END TEST FUNCTION but go the following errors: DROP FUNCTION CREATE FUNCTION You are now connected as new user bp_sales_match_user. psql:scratch.postgresql:36: WARNING: Error occurred while executing PL/pgSQL function update_tmp_sales_report_from_archive_with_prospects psql:scratch.postgresql:36: WARNING: line 5 at for over select rows psql:scratch.postgresql:36: ERROR: parser: parse error at or near "$1" at character 44 Any suggestions? Thanks! -Nate
В списке pgsql-sql по дате отправления: