nikhil raj <nikhilraj474@xxxxxxxxx> writes: > This is the Function I have created successfully but while executing it > throughs an error temp table doesn't exist. You won't be able to do it like that in a SQL-language function, because the whole function body is parsed and parse-analyzed in one go. So the later query referencing ROSTER_TABLE fails because it's parsed before the CREATE TABLE executes. (Improving that has been on the to-do list for a couple of decades, so don't hold your breath...) I suggest putting the whole thing, not just part of it, into plpgsql. regards, tom lane