Add support for materialized views in Oracle producer
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Producer / Oracle.pm
index d3f7a12..929fc8e 100644 (file)
@@ -732,13 +732,23 @@ sub create_view {
     my ($view, $options) = @_;
     my $qt = $options->{quote_table_names};
     my $view_name = quote($view->name,$qt);
+    my $extra = $view->extra;
+
+    my $view_type = 'VIEW';
+    my $view_options = '';
+    if ( my $materialized = $extra->{materialized} ) {
+        $view_type = 'MATERIALIZED VIEW';
+        $view_options .= ' '.$materialized;
+    }
 
     my @create;
-    push @create, qq[DROP VIEW $view_name]
+    push @create, qq[DROP $view_type $view_name]
         if $options->{add_drop_view};
 
-    push @create, sprintf("CREATE VIEW %s AS\n%s",
+    push @create, sprintf("CREATE %s %s%s AS\n%s",
+                      $view_type,
                       $view_name,
+                      $view_options,
                       $view->sql);
 
     return \@create;