Ho risolto il problema in questo modo
Begin
execute 'select count(*) from ' ||tablename||
' where cast(date_dimension_year || ''-'' || date_dimension_month || ''-''||date_dimension_day as date)
not between (current_date - interval ''13 months'') and current_date' into total ;
Ho dovuto assegnare il totale intero verso la fine e la corretta chiusura della virgoletta (') ha funzionato per me.(Ho appena incollato una parte della funzione in cui stavo riscontrando problemi)
Grazie per tutto il tuo aiuto.