Hello,

why does the following statement fail, when I use execute immediate. The statement itself works propperly.

Code:
Error starting at line 1 in command:
DECLARE error Number; BEGIN execute immediate '
  CREATE INDEX CSOSAP.IDX_ESCAL_BEGDAT ON CSOSAP.ESCAL (TO_CHAR(BEGDAT,'YYYYMMDD')) 
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS COMPRESS 1 NOLOGGING 
  STORAGE(INITIAL 81920 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE CSOSAPIDX 
  PARALLEL '; END;
Error report:
ORA-06550: Zeile 2, Spalte 73:
PLS-00103: Fand das Symbol "YYYYMMDD" als eines der folgenden erwartet wurde:

   * & = - + ; < / > at in is mod remainder not rem return
   returning  <> or != or ~= >= <= <> and or
   like like2 like4 likec between into using || multiset bulk
   member submultiset
Das Symbol "* wurde vor "YYYYMMDD" eingefügt, um fortzufahren.
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
Oracle: 11.2.0.2
Windows Server 2003 R2