Can I use truncate in stored procedure?
A stored procedure can be used to truncate a table and overcome the FOREIGN KEY restriction. This is accomplished by including drop/create foreign key SQL with the TRUNCATE TABLE statements. This article provides stored procedure samples to address this challenge and other types of foreign key configurations.
How do you truncate a table in PL SQL?
The TRUNCATE TABLE statement is used to remove all records from a table in Oracle. It performs the same function as a DELETE statement without a WHERE clause. Warning: If you truncate a table, the TRUNCATE TABLE statement can not be rolled back.
What is execute immediate in PL SQL?
The EXECUTE IMMEDIATE statement executes a dynamic SQL statement or anonymous PL/SQL block. You can use it to issue SQL statements that cannot be represented directly in PL/SQL, or to build up statements where you do not know all the table names, WHERE clauses, and so on in advance.
What’s difference between truncate and DELETE?
The DELETE statement removes rows one at a time and records an entry in the transaction log for each deleted row. TRUNCATE TABLE removes the data by deallocating the data pages used to store the table data and records only the page deallocations in the transaction log.
What permissions is required to truncate a table?
Permissions. The minimum permission required is ALTER on table_name. TRUNCATE TABLE permissions default to the table owner, members of the sysadmin fixed server role, and the db_owner and db_ddladmin fixed database roles, and are not transferable.
Does TRUNCATE free space?
Truncating a table does not give any free space back to the disk – you need to run a SHRINKDATABASE operation for the allocated space to be successfully de-allocated and returned to the disk. Also, as others have mentioned, maybe the table was not taking up much space in the first place.
Why TRUNCATE is DDL?
Although TRUNCATE TABLE is similar to DELETE , it is classified as a DDL statement rather than a DML statement. Truncate operations drop and re-create the table, which is much faster than deleting rows one by one, particularly for large tables. Truncate operations cause an implicit commit, and so cannot be rolled back.
