package DBIx::dbMan::Extension::DescribeCompleteOracle;
use strict;
use base 'DBIx::dbMan::Extension';
our $VERSION = '0.04';
1;
sub IDENTIFICATION { return "000001-000049-000004"; }
sub preference { return 1000; }
sub known_actions { return [ qw/DESCRIBE/ ]; }
sub handle_action {
my ($obj,%action) = @_;
if ($action{action} eq 'DESCRIBE' and $action{oper} eq 'complete' and $obj->{-dbi}->driver eq 'Oracle') {
$action{action} = 'CACHE';
$action{cache_type} = 'describe_ora';
unless ($obj->{-dbi}->current) {
$obj->{-interface}->error("No current connection selected.");
return %action;
}
my $sth = $obj->{-dbi}->prepare(q!SELECT object_name FROM user_objects WHERE object_type IN ('TABLE','VIEW')!);
$sth->execute();
my $ret = $sth->fetchall_arrayref();
my @all = ();
@all = map { $_->[0] } @$ret if defined $ret;
$sth->finish;
$action{list} = \@all;
$action{what} = 'list';
$action{processed} = 1;
return %action;
}
$action{processed} = 1;
return %action;
}