resolvi o problema assim
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 ;
Eu tive que atribuir o total inteiro no final e o fechamento adequado da cotação (') funcionou para mim. (Acabei de colar uma parte da função em que estava recebendo o problema)
Obrigado por toda sua ajuda.