triggers may NOT end with a semicolon
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Producer / Oracle.pm
index 0677910..63e55ec 100644 (file)
@@ -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);
             }
         }