Re: Can't create table in procedure

From: <aqs472_at_my-deja.com>
Date: Thu, 30 Nov 2000 18:39:22 GMT
Message-ID: <9066sp$fo7$1_at_nnrp1.deja.com>


Or you an execute your DDL statement before your PL/SQL section, e.g.:

<DDL>

DECLARE ... BEGIN

   .
   .
   .

END
/

In article <3A267501.2B6C2203_at_weinerfamily.org>,   sw_at_weinerfamily.org wrote:
> Ok,
>
> Now that I have a create table in a stored procedure, I find that the
> rest of the proc that refers to the table is failing because the table
> doesn't exist when the proc is compiled.
>
> Any ideas?
>
> Thanks!
>
> Andrew Velichko wrote:
>
> > Hi!
> >
> > To perform DDL statements from PL/SQL you should
> > use native dynamic SQL like
> > CREATE OR REPLACE
> > PROCEDURE x AS
> > BEGIN
> > execute immediate 'CREATE TABLE XX
> > AS SELECT * FROM transaction where transaction_id < 500';
> > END;
> > it's under Oracle8i or for previous versions use DBMS_SQL package.
> >
> > Andrew Velichko
> > Brainbench MVP for Oracle Developer 2000
> > http://www.brainbench.com
> > --------------------------------------------------------------
> >
> > <sw_at_weinerfamily.org> wrote in message
> > news:3A2575D9.CCDDF34C_at_weinerfamily.org...
> > > I don't know PL/SQL well. Can you tell me why this doesn't work?
> > > Is there a problem creating tables in procedures?
> > >
> > > CREATE OR REPLACE
> > > PROCEDURE x AS
> > > BEGIN
> > > CREATE TABLE XX
> > > AS SELECT * FROM transaction where transaction_id < 500
> > > END;
> > >
> > >
> > > The error states it didn't expect CREATE
> > >
>
>

Sent via Deja.com http://www.deja.com/
Before you buy. Received on Thu Nov 30 2000 - 19:39:22 CET

Original text of this message