[Catalyst] Error while going through tutorial using Oracle

Jason Crummack jason.crummack at easysoft.com
Fri Aug 18 10:15:15 CEST 2006


Hi Hartmaier

Thats going to cause me problems when the next release hits the streets, 
if you're automatically uppercasing table names how will it then handle 
reserved word table names where case is important? (e.g "user").

Jason

Hartmaier Alexander wrote:
> Hi!
>
> Use the current svn version which will become 0.07001 soon, it has my Storage::Oracle patch for uppercasing the table names which wasn't included in 0.07.
>
> It's best you specify the sequence names for each auto-inc pk yourself, so you avoid the magic on startup which saves you some time.
>
> -Alex
>
>
>   
>> -----Original Message-----
>> From: catalyst-bounces at lists.rawmode.org [mailto:catalyst-
>> bounces at lists.rawmode.org] On Behalf Of Jason Crummack
>> Sent: Friday, August 18, 2006 1:38 AM
>> To: The elegant MVC web framework
>> Subject: Re: [Catalyst] Error while going through tutorial using Oracle
>>
>> Jason Crummack wrote:
>>
>> Sorry Alex I also forgot to mention that the underlying column_info call
>> that happens (assuming your using DBD::Oracle) is case sensitive, so
>> you'll probably also need to upper case the table name (don't think its
>> necessary with the actual column names).
>>
>> e.g. __PACKAGE__->table('BOOKS');
>>
>> If you created the table unquoted in oracle it will have automatically
>> uppercased the table and column names, this caused me a few problems
>> with a reserved word table name i've been dealing with where i've had to
>> define the quote and seperator characters on connect and use exact case
>> for table and column names.
>>
>> Jason
>>
>>     
>>> Alex Boster wrote:
>>>
>>> Hi Alex,
>>>
>>> For oracle I think you need to set the sequence name for auto-
>>>       
>> increments
>>     
>>> e.g.
>>>
>>> __PACKAGE__->load_components (qw/PK::Auto Core/);
>>> __PACKAGE__->sequence ('{NAME OF YOUR SEQUENCE HERE}');
>>>
>>> I think that's right
>>>
>>> Jason
>>>
>>>
>>>       
>>>> I am part way through the tutorial using Oracle and have gotten
>>>>         
>> stuck.
>>     
>>>> I have create sequences and before insert triggers to replace mySQL's
>>>> autoincrements.  However, I now get:
>>>>
>>>> |Caught exception in MyApp::Controller::Books->url_create "Can't use
>>>>         
>> an undefined value as a HASH reference at
>> /u01/glue/share/perl5/lib/site_perl/5.8.8/DBIx/Class/ResultSource.pm
>> line 197."||
>>     
>>>> |when I try out the formless submission example.  On a suggestion, I
>>>>         
>> removed the "PK::Auto" from the load_components bit of the table modules
>> (i.e., from:
>>     
>>>> __PACKAGE__->load_components(qw/PK::Auto Core/);
>>>> ).  This had no affect.
>>>>
>>>> Any pointers?  Server output and error page follows.
>>>>
>>>> Thanks,
>>>> AB
>>>>
>>>> Server stderr/stdout:
>>>>
>>>> [Template::Provider] creating cache of unlimited slots for [
>>>> CODE(0x9f829a4) ]
>>>> [debug] Debug messages enabled
>>>> [debug] Loaded plugins:
>>>> .--------------------------------------------------------------------
>>>>         
>> --------.
>>     
>>>> | Catalyst::Plugin::ConfigLoader
>>>> 0.12                                       |
>>>> | Catalyst::Plugin::StackTrace
>>>> 0.06                                         |
>>>> | Catalyst::Plugin::Static::Simple
>>>> 0.14                                     |
>>>> '--------------------------------------------------------------------
>>>>         
>> --------'
>>     
>>>> [debug] Loaded dispatcher "Catalyst::Dispatcher"
>>>> [debug] Loaded engine "Catalyst::Engine::HTTP"
>>>> [debug] Found home "/home/aboster/dev/catalyst/MyApp"
>>>> [debug] Loaded Config "/home/aboster/dev/catalyst/MyApp/myapp.yml"
>>>> [debug] Loaded components:
>>>> .-----------------------------------------------------------------+--
>>>>         
>> --------.
>>     
>>>> | Class                                                           |
>>>> Type     |
>>>> +-----------------------------------------------------------------+--
>>>>         
>> --------+
>>     
>>>> | MyApp::Controller::Books                                        |
>>>> instance |
>>>> | MyApp::Controller::Root                                         |
>>>> instance |
>>>> | MyApp::Model::MyAppDB                                           |
>>>> instance |
>>>> | MyApp::Model::MyAppDB::Author                                   |
>>>> class    |
>>>> | MyApp::Model::MyAppDB::Book                                     |
>>>> class    |
>>>> | MyApp::Model::MyAppDB::BookAuthor                               |
>>>> class    |
>>>> | MyApp::View::TT                                                 |
>>>> instance |
>>>> '-----------------------------------------------------------------+--
>>>>         
>> --------'
>>     
>>>> [debug] Loaded Private actions:
>>>> .----------------------+--------------------------------------+------
>>>>         
>> --------.
>>     
>>>> | Private              | Class                                |
>>>> Method       |
>>>> +----------------------+--------------------------------------+------
>>>>         
>> --------+
>>     
>>>> | /default             | MyApp::Controller::Root              |
>>>> default      |
>>>> | /end                 | MyApp::Controller::Root              |
>>>> end          |
>>>> | /books/url_create    | MyApp::Controller::Books             |
>>>> url_create   |
>>>> | /books/index         | MyApp::Controller::Books             |
>>>> index        |
>>>> | /books/list          | MyApp::Controller::Books             |
>>>> list         |
>>>> '----------------------+--------------------------------------+------
>>>>         
>> --------'
>>     
>>>> [debug] Loaded Path actions:
>>>> .-------------------------------------+------------------------------
>>>>         
>> --------.
>>     
>>>> | Path                                |
>>>> Private                              |
>>>> +-------------------------------------+------------------------------
>>>>         
>> --------+
>>     
>>>> | /books/list                         |
>>>> /books/list                          |
>>>> | /books/url_create                   |
>>>> /books/url_create                    |
>>>> '-------------------------------------+------------------------------
>>>>         
>> --------'
>>     
>>>> [info] MyApp powered by Catalyst 5.7001
>>>> You can connect to your server at
>>>>         
>> http://darkwind003.989studios.com:3000
>>     
>>>> [info] *** Request 1 (0.200/s) [1065] [Thu Aug 17 10:32:58 2006] ***
>>>> [debug] "GET" request for "books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4"
>>     
>>>> from "172.31.30.76"
>>>> [debug] Path is "books/url_create"
>>>> [debug] Arguments are "TCPIP_Illustrated_Vol-2/5/4"
>>>> [error] Caught exception in MyApp::Controller::Books->url_create
>>>>         
>> "Can't
>>     
>>>> use an undefined value as a HASH reference at
>>>> /u01/glue/share/perl5/lib/site_perl/5.8.8/DBIx/Class/ResultSource.pm
>>>> line 197."
>>>> [info] Request took 1.681834s (0.595/s)
>>>> .----------------------------------------------------------------+---
>>>>         
>> --------.
>>     
>>>> | Action                                                         |
>>>> Time      |
>>>> +----------------------------------------------------------------+---
>>>>         
>> --------+
>>     
>>>> | /books/url_create                                              |
>>>> 1.656821s |
>>>> | /end                                                           |
>>>> 0.000262s |
>>>> '----------------------------------------------------------------+---
>>>>         
>> --------'
>>     
>>>> Error page:
>>>>
>>>> |Caught exception in MyApp::Controller::Books->url_create "Can't use
>>>>         
>> an
>>     
>>>> undefined value as a HASH reference at
>>>> /u01/glue/share/perl5/lib/site_perl/5.8.8/DBIx/Class/ResultSource.pm
>>>> line 197."|
>>>>
>>>>
>>>>     Stack Trace
>>>>     <http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4#>
>>     
>>>> Package 	Line 	File
>>>> MyApp::Controller::Books 	66
>>>> /home/aboster/dev/catalyst/MyApp/lib/MyApp/Controller/Books.pm
>>>>
>>>> | 63: 64: # Call create() on the book model object. Pass the table
>>>>         
>> 65: #
>>     
>>>> columns/field values we want to set as hash values * 66: my $book =
>>>> $c->model('MyAppDB::Book')->create({ * 67: title => $title, 68:
>>>>         
>> rating
>>     
>>>> => $rating 69: }); |
>>>>
>>>>
>>>>     Request
>>>>     <http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4#>
>>     
>>>> bless({
>>>>   action           => "books/url_create",
>>>>   address          => "172.31.30.76",
>>>>   arguments        => ["TCPIP_Illustrated_Vol-2", 5, 4],
>>>>   base             => bless(do{\(my $o =
>>>>         
>> "http://darkwind003:3000/")}, "URI::http"),
>>     
>>>>   body_parameters  => {},
>>>>   captures         => [],
>>>>   cookies          => {},
>>>>   headers          => bless({
>>>>                         "accept" =>
>>>>         
>> "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/pla
>> in;q=0.8,image/png,*/*;q=0.5",
>>     
>>>>                         "accept-charset" => "ISO-8859-1,utf-
>>>>         
>> 8;q=0.7,*;q=0.7",
>>     
>>>>                         "accept-encoding" => "gzip,deflate",
>>>>                         "accept-language" => "en-us,en;q=0.5",
>>>>                         connection => "keep-alive",
>>>>                         host => "darkwind003:3000",
>>>>                         "keep-alive" => 300,
>>>>                         "user-agent" => "Mozilla/5.0 (X11; U; Linux
>>>>         
>> i686; en-US; rv:1.8.0.2) Gecko/20060419 CentOS/1.5.0.2-3.c4.centos
>> Firefox/1.5.0.2",
>>     
>>>>                       }, "HTTP::Headers"),
>>>>   hostname         => "sceapdsd-172-31-30-76.989studios.com",
>>>>   match            => "books/url_create",
>>>>   method           => "GET",
>>>>   parameters       => {},
>>>>   path             => "books/url_create/TCPIP_Illustrated_Vol-2/5/4",
>>>>   protocol         => "HTTP/1.0",
>>>>   query_parameters => {},
>>>>   secure           => 0,
>>>>   uploads          => {},
>>>>   uri              => bless(do{\(my $o =
>>>>         
>> "http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>> 2/5/4")}, "URI::http"),
>>     
>>>>   user             => undef,
>>>> }, "Catalyst::Request")
>>>>
>>>>
>>>>     Response
>>>>     <http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4#>
>>     
>>>> bless({
>>>>   body    => "",
>>>>   cookies => {},
>>>>   headers => bless({
>>>>                "content-type" => "text/html; charset=utf-8",
>>>>                "x-catalyst"   => "5.7001",
>>>>              }, "HTTP::Headers"),
>>>>   status  => 200,
>>>> }, "Catalyst::Response")
>>>>
>>>>
>>>>     Stash
>>>>     <http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4#>
>>     
>>>> {}
>>>>
>>>>
>>>>     Config
>>>>     <http://darkwind003:3000/books/url_create/TCPIP_Illustrated_Vol-
>>>>         
>> 2/5/4#>
>>     
>>>> do {
>>>>   my $a = {
>>>>     home => "/home/aboster/dev/catalyst/MyApp",
>>>>     name => "MyApp",
>>>>     root => bless({
>>>>           dirs => ["", "home", "aboster", "dev", "catalyst", "MyApp",
>>>>         
>> "root"],
>>     
>>>>           file_spec_class => undef,
>>>>           volume => "",
>>>>         }, "Path::Class::Dir"),
>>>>     stacktrace => { context => 3, verbose => 0 },
>>>>     static => {
>>>>           debug => 1,
>>>>           dirs => [],
>>>>           ignore_dirs => [],
>>>>           ignore_extensions => ["tmpl", "tt", "tt2", "html",
>>>>         
>> "xhtml"],
>>     
>>>>           include_path => ['fix'],
>>>>           mime_types => {},
>>>>           no_logs => 1,
>>>>         },
>>>>   };
>>>>   $a->{static}{include_path}[0] = $a->{root};
>>>>   $a;
>>>> }
>>>>
>>>>
>>>>   MyApp on Catalyst 5.7001
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> List: Catalyst at lists.rawmode.org
>>>> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>>>> Searchable archive: http://www.mail-
>>>>         
>> archive.com/catalyst at lists.rawmode.org/
>>     
>>>> Dev site: http://dev.catalyst.perl.org/
>>>>
>>>>
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> List: Catalyst at lists.rawmode.org
>>> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>>> Searchable archive: http://www.mail-
>>>       
>> archive.com/catalyst at lists.rawmode.org/
>>     
>>> Dev site: http://dev.catalyst.perl.org/
>>>
>>>
>>>
>>>       
>> _______________________________________________
>> List: Catalyst at lists.rawmode.org
>> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>> Searchable archive: http://www.mail-
>> archive.com/catalyst at lists.rawmode.org/
>> Dev site: http://dev.catalyst.perl.org/
>>     
>
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
> T-Systems Austria GesmbH   Rennweg 97-99, 1030 Wien
> Handelsgericht Wien, FN 79340b
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
> Notice: This e-mail contains information that is confidential and may be privileged.
> If you are not the intended recipient, please notify the sender and then delete this e-mail immediately.
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>
>
>   




More information about the Catalyst mailing list