%TruncateTable and Temprory Tables
%TruncateTable is not just able just to truncate the table. It changes to Delete statement when it is used with the Temporary table When shared base table has been allocated, because no dedicated instances were available. PeopleSoft Application Engine performs a delete by process instance instead of performing a truncate.
You should always use %TruncateTable to perform a mass delete on dedicated temporary tables, especially if the Continue option is in effect.
Even if you have elected to terminate the program if a dedicated table cannot be allocated, you may still use %TruncateTable meta-SQL with dedicated temporary tables. %TruncateTable resolves to either a Truncate or a Delete by process instance, as needed.
The argument of %TruncateTable is a table name instead of a record name. As a result, you must code your SQL as shown in the following example:
%TruncateTable(%Table(recname))