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:[email protected]] 
Sent: 04 August 2010 13:39
To: DBIx::Class user and developer list
Subject: Re: [Dbix-class] Oracle Built-In Functions

2010/8/4 Андрей Костенко <[email protected]>:
> $rs->date_updated( \‘SYSDATE’ );
>
> On Wed, Aug 4, 2010 at 1:25 PM, Duncan Garland
> <[email protected]> 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/[email protected]
_______________________________________________
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/[email protected]

Reply via email to