Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: HELP: Why doesn't this query work?

Re: HELP: Why doesn't this query work?

From: Ken Denny <ken_at_kendenny.com>
Date: 12 Feb 2004 10:08:43 -0800
Message-ID: <ba944bc3.0402121008.cd28f20@posting.google.com>


necron1999_at_hotmail.com (DG) wrote in message news:<eb556de4.0402120340.72117c5_at_posting.google.com>...
> Hi, yes, I'm an Oracle newbie:
>
> When I run this query:
>
> declare
> thecount number ;
>
> begin
>
> select count(*) into thecount from user_tables where table_name = 'B';
> if thecount = 0 then
> create table B (theCol number);
> end if;
> end;
>
> I get this error:
>
> PLS-00103: Støtte på symbolet CREATE der ett av følgende var ventet:
> ....blah blah...
>
> why is this? When I change the statement in the "IF" block
> to..say..an Insert statement it works ok...
>
> HELP!
>
> Thank you

"Create" is not a PL/SQL command. Create is DDL, in PL/SQL you can only use DML. But fear not, there is a way to do it:

IF thecount = 0 then
  execute immediate 'create table B (theCol number)'; end if;

execute immeidate is the mechanism used to execute DDL statements in PL/SQL. It can also be used to execute DML commands where table names and/or column names are not known until run time.

Ken Denny Received on Thu Feb 12 2004 - 12:08:43 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US