You must use Dynamic SQL to execute DDL on the fly:

create procedure create_table (table_name in varchar2,column1 in varchar2,column2 in varchar2)
as
begin
___execute immediate 'create table ' || table_name || ' ( '
___ || column1 || ' varchar2(10), '
___ || column2 || ' varchar2(10));
end;

For more info go to: [url]http://www.oracle.com/oramag/oracle/00-nov/o60sql.html[/url]