just put it in quotes and add execute immedite. you can also use concantenation and 
variables ot make it more dynamic.

declare

begin

execute immediate 'CREATE INDEX ART_HIERARKI_LOCKEDIX1 ON
  ART_HIERARKI_LOCKED(SELSKAP, SETT_ID, VGRP, ART_GRP, ART_UGRP)
  TABLESPACE PBKIX PCTFREE 10  STORAGE(INITIAL 65536 NEXT  PCTINCREASE  )';

end;

you could for instance do this.

proc makeIndex(p_indexName IN VARCHAR2) IS

begin 

execute immediate 'CREATE INDEX '||p_indexName||' ON
  ART_HIERARKI_LOCKED(SELSKAP, SETT_ID, VGRP, ART_GRP, ART_UGRP)
  TABLESPACE PBKIX PCTFREE 10  STORAGE(INITIAL 65536 NEXT  PCTINCREASE  )'

you will need to put close and opening quotes on each line and use || to concatenate 
together. you can do any type of SQL with execute immediate including Alter System and 
alter session commands. Its pretty robust. 


> 
> From: [EMAIL PROTECTED]
> Date: 2003/06/05 Thu AM 06:54:42 EDT
> To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]>
> Subject: Create index script in pl/sql
> 
> Hallo all,
> 
> anyone whom could help me with this:
> 
> I would like to have an example of pl/sql procedur which does the following:
> 
> CREATE INDEX ART_HIERARKI_LOCKEDIX1 ON
>   ART_HIERARKI_LOCKED(SELSKAP, SETT_ID, VGRP, ART_GRP, ART_UGRP)
>   TABLESPACE PBKIX PCTFREE 10  STORAGE(INITIAL 65536 NEXT  PCTINCREASE  )
> ;
> 
> CREATE UNIQUE INDEX PK_ART_HIERARKI_LOCKED ON
>   ART_HIERARKI_LOCKED(SELSKAP, SETT_ID, ARTNR)
>   TABLESPACE PBKIX PCTFREE 10  STORAGE(INITIAL 65536 NEXT  PCTINCREASE  )
> 
> So the pl/sql procedur should create those 2 indexesd, how can I write the pl/sql 
> code then?
> 
> 
> Thanks in advance
> 
> 
> Roland
> 
> 
> 
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> -- 
> Author: 
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
> San Diego, California        -- Mailing list and web hosting services
> ---------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from).  You may
> also send the HELP command for other information (like subscribing).
> 
> 

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: <[EMAIL PROTECTED]
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to