SED shell script

Generate a ddl file, we have a flat file which contains many commands like REM, CREATE table, TRuncate etc
This script should copy only create table statements to the ddl file.
Create stmts can be in a single or multiple lines.

ex:- INPUT FILE

       create table tbl1
       (fld1, fld2,
        fld3);
        truncate table3;
        create table tbl2(fld2, fld3);

OUTPUT FILE

       create table tbl1(fld1, fld2, fld3);
       create table tb2(fld2, fld3);

i've created a grep command but it works if the create stmt is in single line

grep 'create' old | cut -d '.' -f 1| sort

pls help mee:wall::wall::wall:

$ ruby -0777 -ne 'puts $_.split(/;/).select{|x| x.gsub!(/\s+/,"\s") if x[/create table/i] }' file
create table tbl1 (fld1, fld2, fld3)
 create table tbl2(fld2, fld3)

$ echo "create table tbl1
(fld1, fld2,
fld3);
truncate table3;
create table tbl2(fld2, fld3);" |
awk '/create/{p++}{a[p]=a[p]?a[p]$0:$0}END{for (i=1;i<=p;i++) print a}'
create table tbl1(fld1, fld2,fld3);truncate table3;
create table tbl2(fld2, fld3);

i think he doesn't want the truncate statement

Thanks,

$ awk -v RS= -v FS="\n" '{for (i=1;i<=NF;i++) {if($i~/create/|| $i~/\(/) {printf $i} else {if($i~/\)/) {print $i}}}}' file
create table tbl1(fld1, fld2,fld3);
create table tbl2(fld2, fld3);
awk '{printf (/REM|create table|truncate/)? RS $0: FS $0}' infile |grep -Ev "^$|^REM|^truncate"