in reply to Re: Class::DBI::Oracle and views
in thread Class::DBI::Oracle and views

Sure, and thank you. Here's test.pl:
#!/usr/bin/perl -w use strict; require Modules.pl; my @students = TestPkg::View->retrieve_all; # returns the same error as search() would warn Dumper(\@students);
And here's code from Modules.pl -- I'm not using Class::DBI::View in this version of the code, obviously. (Relevant info: this is a view containing enrollment data for a course.)
package TestPkg::DBI; use base 'Class::DBI::Oracle'; TestPkg::DBI->set_db('Main', 'dbi:Oracle:devdv', 'username', 'password +'); package TestPkg::View; use base TestPkg::DBI; __PACKAGE__->table('course_enrollment'); __PACKAGE__->columns( All => qw/id username year term name_first name_ +last/ ); # and just for kicks, here's another package that's working just fine # it points to a table, not a view package TestPkg::Permissions; use base TestPkg::DBI; __PACKAGE__->table('permissions'); __PACKAGE__->columns( All => qw/id student_id access_level/);
The view is just generated from a command like
CREATE OR REPLACE VIEW course_enrollment AS SELECT [...]
(it's of course much longer and nastier -- but I can select things from it on the command line just fine.)

Replies are listed 'Best First'.
Re: Re: Class::DBI::Oracle and views
by perrin (Chancellor) on Sep 28, 2003 at 23:11 UTC
    Well, I don't see anything wrong here. It's probably a bad idea to keep all of your packages in Modules.pl (as opposed to separate files) and there is no reason to use Class::DBI::Oracle if you're not using the set_up_table call, but neither of those should break it.

    Can you access this view from DBI when you don't go through Class::DBI?

      Yeah, I know I should keep 'em in separate files -- I'm just putting all the packages in one place just for testing purposes. Also, I wanted to use Class::DBI::Oracle for the sequencing -- unless there's a better way? I'm still pretty new to the Class::DBI stuff.

      And yes, I can access the view just fine when I'm using plain ol' DBI. So frustrating! Do you think it might have something to do with the older version of Class::DBI that I'm using?
        I could be wrong, but it doesn't look like Class::DBI::Oracle does anything special to make sequencing work unless you call set_up_table. Not sure about possible issues with your old version. Check the changelog and try asking on the Class::DBI mailing list.