This message appears: ERROR: relation "t_arti" does not exist SQL state: 42P01 Context: SQL function "test1" Why it does not work??? thanks for your help
Because plpgsql functions are compiled on first execution and all queries are then prepared. All tables are referenced directly in prepared statements, not by name. Any prepared statement that refers to dropped tables (even dropped temp tables) is thus unfit for consumption.
This allows queries in plpgsql functions to be extremely fast, but it isn't smart enough (yet) to recompile functions when a table the function depends on is dropped.
Just disconnect and reconnect, all prepared plans will be lost, and it will work. Or issue your queries directly instead of using a function.