execute immediate truncate table in sqlplus

Vishal Saxena picture Vishal Saxena · Nov 5, 2012 · Viewed 13.5k times · Source

Why does execute immediate 'truncate table trade_economics'; in a sqlplus script give the following error ?

 BEGIN immediate 'truncate table trade_economics'; END;
                    *
    ERROR at line 1:
    ORA-06550: line 1, column 17:
    PLS-00103: Encountered the symbol "truncate table trade_economics" when
    expecting one of the following:
    := . ( @ % ;
    The symbol ":=" was substituted for "truncate table trade_economics" to
    continue.`

Answer

Pablo Santa Cruz picture Pablo Santa Cruz · Nov 5, 2012

You need to add execute before immediate in order to make it to work.

Something like:

begin
    execute immediate 'truncate table foo';
end;
/