[Dbix-class] Oracle Built-In Functions

Duncan Garland Duncan.Garland at motortrak.com
Wed Aug 4 14:20:58 GMT 2010


Hi Rob,

Doing it in perl is a work-around not a solution. There are lots of built-in function which may need to be used.

However, you and Andrey seem to be on the right lines with the reference. \'SYSDATE' works.

The following also works:

$v[0]->update( { date_to => \'DECODE( \'apples\', \'pears\', \'grapes\', NVL( SYSDATE, SYSDATE ) )', left_by => $c->user->get( 'id' ) } );

Although SYSDATE gets truncated for some reason. It's probably OK for more sensible examples.

Thanks

Duncan

-----Original Message-----
From: Rob Kinyon [mailto:rob.kinyon at gmail.com] 
Sent: 04 August 2010 13:39
To: DBIx::Class user and developer list
Subject: Re: [Dbix-class] Oracle Built-In Functions

2010/8/4 Андрей Костенко <andrey at kostenko.name>:
> $rs->date_updated( \‘SYSDATE’ );
>
> On Wed, Aug 4, 2010 at 1:25 PM, Duncan Garland
> <Duncan.Garland at motortrak.com> wrote:
>> Hi,
>>
>> I’m struggling to persuade DBIx::Class to use simple Oracle built-ins such
>> as SYSDATE, DECODE and NVL.
>>
>> Eg UPDATE table1 SET date_updated = SYSDATE, destination = NVL(
>> $destination, ‘home’ ) WHERE ... ;
>>
>> $rs->date_updated( ‘SYSDATE’ );

$schema->resultset('table1')->search({
...
})->update({
    date_updated => \'SYSDATE',
    destination => $destination // 'home', # Assumes Perl 5.10 or higher
});

No reason to call NVL when you're coming from Perl.

Rob

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk


More information about the DBIx-Class mailing list