[Dbix-class] info Oracle: executing sql code for sequences or lock

Jess Robinson castaway at desert-island.demon.co.uk
Wed Jan 17 13:54:24 GMT 2007



On Wed, 17 Jan 2007, Igor Longagnani wrote:

> Hi Alexander,
> I am "rewriting some old script" to make it "better" ( ahahah we will
> check this in the end ),
> so I am just guessing the full envrioment/project ...anyway:
>
> I have some table, lets say TABNAME  (n.b. =$table in the Perl excerpt),
> with a multifield primary-key (CENTER,ALTNO,CODPAT):
> ... some project specification I couldnt be made aware of, asks for
> "cloning a row":
>
> Rules for subkeys already implemented in the previous script are:
>
> CENTER doesnt change
> ALTNOis max(ALTNO) where CENTER = <current CENTER  value>
> CODPAT s taken form a sequence
>
> So, after some RTFM mumbling i thought to follow such ... "path"
>
>                # get record data to be cloned
>                my $data = $c->model($table)->find( $criteria );
>
>                # set the new key val
>                my $newcriteria = $criteria;
>                $newcriteria->{center}    = $new_center;
>                $newcriteria->{altno}    = $new_altno;
>                $newcriteria->{codpat}    = $new_codpat;
>
>                # change the key and insert the new record
>                my $copy = $data->copy( $newcriteria );
>
> # Do I need to call "copy->update" or "copy->insert" in the end?  ( ehm
> this is a quetion in the question hehe :) )

No, copy calls insert for you.

> I though i could have chaged the primary keys myself ..but, to do this,
> at least 1 sub-key field has to be queried from a sequence
> because of previous project decisions.

No, if you just make sure you have the primary key set to 
"is_auto_increment" in the add_columns, then copy will automatically empty 
that field for you, and it should work just the same as when you use 
->create. (If that works, I assuming you are using triggers and 
sequences?)

Jess

> I am sure ma attempt to explain made the things wore  but i hope this
> helps ...in giving a better picture.
> Thanks in advance for Your help.
>
> Igor
>
>
>
>
>
> Hartmaier Alexander ha scritto:
>> Hi Igor!
>>
>> I'd suggest you explain what you try to archieve first, because I *never ever* needed to fetch the nextval of a sequence by myself in any of my catalyst apps and also never to care about locking with Oracle (9 and now 10).
>>
>> -Alex
>>
>>
>>
>>> -----Original Message-----
>>> From: Igor Longagnani [mailto:i.longagnani at synervis.it]
>>> Sent: Wednesday, January 17, 2007 10:43 AM
>>> To: dbix-class at lists.rawmode.org
>>> Subject: [Dbix-class] info Oracle: executing sql code for sequences or
>>> lock
>>>
>>> Hi, once again ...
>>>
>>> I am using DBIX::Class into Catalyst environment and i am trying to
>>> figure out a solution for 2 problems different but with common roots:
>>>
>>> 1 - how can i execute something like "SELECT mysequence.NEXTVAL from
>>> DUAL"  ??
>>>
>>> 2 - how can i execute something like "lock table $tablename exclusive
>>> mode nowait"  ??
>>>
>>> Thanks again, I am a little stuck and feel quite ignorant myself.
>>> I tried some RTFM search with no real luck.
>>>
>>> Any clue?
>>>
>>> Igor
>>>
>>> --
>>> Igor Longagnani c/o Synervis
>>> -------------------------------------------------------------------
>>> e-mail: i.longagnani at synervis.it             phone : +39 059 558442
>>>
>>> sede operativa: via Pirandello, 49/51 - 41043 Formigine (Mo) Italia
>>>
>>>
>>> _______________________________________________
>>> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
>>> Wiki: http://dbix-class.shadowcatsystems.co.uk/
>>> IRC: irc.perl.org#dbix-class
>>> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
>>> Searchable Archive: http://www.mail-archive.com/dbix-
>>> class at lists.rawmode.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: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
>> Wiki: http://dbix-class.shadowcatsystems.co.uk/
>> IRC: irc.perl.org#dbix-class
>> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
>> Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/
>>
>>
>>
>
>
> -- 
> Igor Longagnani c/o Synervis
> -------------------------------------------------------------------
> e-mail: i.longagnani at synervis.it             phone : +39 059 558442
>
> sede operativa: via Pirandello, 49/51 - 41043 Formigine (Mo) Italia
>
>
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/
>
>



More information about the Dbix-class mailing list