X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FProducer%2FOracle.pm;h=63e55ec84bcc9270cb684be1bd290800f37bb22f;hb=f92d79aad4f104af6eeb16d0e2660574b633fdf2;hp=0677910de211e5a33351184883fbd978af544d90;hpb=d8886a3750f26f89e5a4f947aabcb2dad0e2d19f;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Producer/Oracle.pm b/lib/SQL/Translator/Producer/Oracle.pm index 0677910..63e55ec 100644 --- a/lib/SQL/Translator/Producer/Oracle.pm +++ b/lib/SQL/Translator/Producer/Oracle.pm @@ -216,7 +216,15 @@ sub produce { push @view_defs, create_view($view); } - return wantarray ? (defined $create ? $create : (), @table_defs, @view_defs, @fk_defs, @trigger_defs, @index_defs, @constraint_defs) : $create . join ('', map { $_ ? "$_;\n\n" : () } @table_defs, @view_defs, @fk_defs, @trigger_defs, @index_defs, @constraint_defs); + if (wantarray) { + return defined $create ? $create : (), @table_defs, @view_defs, @fk_defs, @trigger_defs, @index_defs, @constraint_defs; + } + else { + $create .= join ('', map { $_ ? "$_;\n\n" : () } @table_defs, @view_defs, @fk_defs, @index_defs, @constraint_defs); + # triggers may NOT end with a semicolon + $create .= join "\n\n", @trigger_defs; + return $create; + } } sub create_table { @@ -311,7 +319,7 @@ sub create_table { push @constraint_defs, "CONSTRAINT $name CHECK ($expression)"; } elsif ( $c->type eq FOREIGN_KEY ) { - $name = mk_name( join('_', $table_name, $c->fields). '_fk' ); + $name = mk_name( join('_', $table_name, $c->fields). '_fk' ); my $def = "CONSTRAINT $name FOREIGN KEY "; if ( @fields ) { @@ -335,12 +343,12 @@ sub create_table { $def .= ' ON DELETE '.join( ' ', $c->on_delete ); } - # disabled by plu 2007-12-29 - doesn't exist for oracle - #if ( $c->on_update ) { - # $def .= ' ON UPDATE '.join( ' ', $c->on_update ); - #} + # disabled by plu 2007-12-29 - doesn't exist for oracle + #if ( $c->on_update ) { + # $def .= ' ON UPDATE '.join( ' ', $c->on_update ); + #} - push @fk_defs, sprintf("ALTER TABLE %s ADD %s", $table, $def); + push @fk_defs, sprintf("ALTER TABLE %s ADD %s", $table_name_ur, $def); } }