I understand that truncate lowers the high water mark on a table which allows space to be freed up and is generally quicker than a delete. However, if you have a temp table in a loop in which you are storing some scratch data each time you go through a loop and that scratch data is a constant size, lets size 500 rows, would it be better to delete the table so as to not have to acquire space each time through the loop. Also, I understand in this situation it may be better to use a nested table in PL/SQL but the question is still a valid one since I don't see it considered much in the discussions as delete retains space that you will end up needing to allocate repeatedly in a loop.