Sandy Ramirez
Sandy Ramirez

Reputation: 1

Resize datafile oracle using execute immediate

I need resize this datafile '+GMPDATDESA01/prod/datafile/apps_ts_tx_idx.269.878649919', why this simple procedure is wrong?.

Other options, plis?

SQL> begin
      2  execute immediate 'alter database datafile '+GMPDATDESA01/prod/datafile/apps_ts_tx_idx.269.878649919' resize 732M';
      3  exit;
      4  /
    execute immediate 'alter database datafile '+GMPDATDESA01/prod/datafile/apps_ts_tx_idx.269.878649919' resize 732M';


                                                                                *

ERROR at line 2: ORA-06550: line 2, column 87: PLS-00103: Encountered the symbol ".269" when expecting one of the following: . ( * @ % & = - + ; < / > at in is mod remainder not rem return returning <> or != or ~= >= <= <> and or like like2 like4 likec between into using || bulk member submultiset

Upvotes: 0

Views: 1460

Answers (1)

Stefan Yordanov
Stefan Yordanov

Reputation: 666

You need to escape single quote (') with double quote ('')

begin
      execute immediate 'alter database datafile ''+GMPDATDESA01/prod/datafile/apps_ts_tx_idx.269.878649919'' resize 732M';
end;
/

But why are you using dynamic sql? You can just write

alter database datafile '+GMPDATDESA01/prod/datafile/apps_ts_tx_idx.269.878649919' resize 732M';

in sqlplus?

Upvotes: 2

Related Questions