On 10/12/05, laura pena <lizzpenaorclgrp@(protected)> wrote: > > > Here is the issue with this sql: > 1 select * > 2 from ( > 3 select callid > 4 , to_char(calldate,'MMDDYYYY HH24:MM:SS') > 5 from calldetail_tmp > 6 where calldate between sysdate - 110 and > sysdate > 7 and audiostate = 10 > 8 and callflowtypeid in (8,13,17,28) > 9 order by calldate > 10 ) > 11* where rownum <= 4 > SQL> / > > CALLID TO_CHAR(CALLDATE, > -- ---- ---- --- -- ---- ---- ---- > 5020050630008657 06302005 09:06:24 > 5020050630008658 06302005 09:06:30 > 5020050630008659 06302005 10:06:13 > 5020050630008660 06302005 10:06:58 > > okay so lets add the for udpate now .... > > > Add the for update: > 1 select * > 2 from ( > 3 select callid > 4 , to_char(calldate,'MMDDYYYY HH24:MM:SS') > 5 from calldetail_tmp > 6 where calldate between sysdate - 110 and > sysdate > 7 and audiostate = 10 > 8 and callflowtypeid in (8,13,17,28) > 9 order by calldate > 10 ) > 11 where rownum <= 4 > 12* for update > > > ERROR at line 2: > ORA-02014 (See ORA-02014.ora-code.com): cannot select FOR UPDATE from view with > DISTINCT, GROUP BY, etc. > > > Issue with locking is the application is > multi-threaded , if I break up this up into 2 sql > statements two threads could update the same row. I > don't want this to happen. > > Many Thanks, > -Lizz > > --- Anthony Wilson <amwilson@(protected)> wrote: > > > For the ordering issue, just move the rownum > > predicate out of the query: > > > > select * > > from ( > > select callid > > , to_char(calldate,'MMDDYYYY HH24:MM:SS') > > from calldetail_tmp > > where calldate between sysdate - 110 and sysdate > > and audiostate = 10 > > and callflowtypeid (8,13,17,28) > > order by calldate > > ) > > where rownum <= 4 > > / > > > > As for the locking issue, I'm not sure I understood > > the question...?? > > > > cheers, > > Anthony > > > > On Wed, Oct 12, 2005 at 08:34:23AM, laura pena > > wrote: > > > I would like to create a lock in my Java > > application > > > using select for update. > > > > > > Here is the sql: > > > > > > select callid, TO_CHAR(calldate,'MMDDYYYY > > HH24:MM:SS') > > > from calldetail_tmp > > > where calldate between sysdate -110 and sysdate > > > and (audiostate = 10 AND callflowtypeid IN > > > (8,13,17,28)) > > > and rownum <= 4 > > > order by calldate for update; > > > > > > > > > Issue hear rownum does not guarantee results will > > be > > > in order specified by the order by clause. Rownum > > is > > > set before sort is done by order clause. > > > > > > Most of the time calls are returned in sorted > > order ( > > > order of insertion is what rownum is being > > returned > > > as). It is in a backlog condition that rows are > > not > > > returned properly. > > > > > > > > > I have looked at locking via a view but can not > > lock > > > on a complex view. Am looking at lock table in > > share > > > mode now. Any suggestions would be greatly > > > appreciated. > > > > > > > > > Many Thanks, > > > -Lizz > > > > > -- > > Anthony Wilson > > > > > > > > __ ____ ____ ____ ____ ____ ______ > Yahoo! Mail - PC Magazine Editors' Choice 2005 > http://mail.yahoo.com > -- > http://www.freelists.org/webpage/oracle-l >
-- -- ---- ---- ---- ---- ---- -- select standard_disclaimer from company_requirements where category = 'MANDATORY';
What db version?? I probably missed that in op.<br><br>Raj<br><br><div><span class="gmail_quote">On 10/12/05, <b class="gmail_sendername">laura pena</b> < ;<a href="mailto:lizzpenaorclgrp@(protected)">lizzpenaorclgrp@(protected) </a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br >Here is the issue with this sql:<br> 1 select *<br> 2 from (<br> 3 select callid<br> 4 , to_char(calldate,'MMDDYYYY HH24:MM:SS')<br > 5 from calldetail_tmp<br> 6 where calldate between sysdate - 110 and<br>sysdate<br> 7 and audiostate = 10<br> 8 and callflowtypeid in (8,13,17,28) <br> 9 order by calldate<br> 10 )<br> 11* where rownum <= 4<br>SQL> /<br><br>CALLID   ; TO_CHAR(CALLDATE,<br>-- ------ -- ---- -- ---- ---- ----<br>5020050630008657 06302005 09:06:24<br >5020050630008658 06302005 09:06:30 <br>5020050630008659 06302005 10:06:13<br>5020050630008660 06302005 10:06:58<br ><br>okay so lets add the for udpate now ....<br><br><br>Add the for update:<br> 1 select *<br> 2 from (<br> 3 select callid<br> 4 , to_char (calldate,'MMDDYYYY HH24:MM:SS') <br> 5 from calldetail_tmp<br> 6 where calldate between sysdate - 110 and<br>sysdate<br> 7 and audiostate = 10<br> 8   ; and callflowtypeid in (8,13,17,28)<br> 9 order by calldate<br>10 )<br>11 where rownum <= 4 <br>12* for update<br><br><br>ERROR at line 2:<br>ORA-02014 (See ORA-02014.ora-code.com): cannot select FOR UPDATE from view with<br>DISTINCT, GROUP BY, etc.<br><br><br>Issue with locking is the application is<br>multi-threaded , if I break up this up into 2 sql <br>statements two threads could update the same row. I<br>don't want this to happen.<br><br>Many Thanks,<br>-Lizz<br><br>--- Anthony Wilson <<a href= "mailto:amwilson@(protected)">amwilson@(protected)</a>> wrote:<br> <br>> For the ordering issue, just move the rownum<br>> predicate out of the query:<br>><br>> select *<br>> from (<br>> select callid<br>> , to_char(calldate, 'MMDDYYYY HH24:MM:SS')<br>> from calldetail_tmp <br>> where calldate between sysdate - 110 and sysdate<br>> and audiostate = 10<br>> and callflowtypeid (8,13,17,28)<br>> order by calldate<br>> )<br>> where rownum <= 4<br>> /<br>> <br>> As for the locking issue, I'm not sure I understood<br>> the question...??<br>><br>> cheers,<br>> Anthony<br>><br>> On Wed, Oct 12, 2005 at 08:34:23AM, laura pena<br>> wrote:<br>> > I would like to create a lock in my Java <br>> application<br>> > using select for update.<br>> ><br>> > Here is the sql:<br>> ><br>> > select callid, TO_CHAR(calldate ,'MMDDYYYY<br>> HH24:MM:SS')<br>> > from calldetail_tmp <br>> > where calldate between sysdate -110 and sysdate<br>> > and (audiostate = 10 AND callflowtypeid IN<br>> > (8,13,17,28))<br>> > and rownum <= 4<br>> > order by calldate for update; <br>> ><br>> ><br>> > Issue hear rownum does not guarantee results will<br>> be<br>> > in order specified by the order by clause. Rownum<br>> is<br>> > set before sort is done by order clause. <br>> ><br>> > Most of the time calls are returned in sorted<br>> ; order (<br>> > order of insertion is what rownum is being<br>> returned<br>> > as). It is in a backlog condition that rows are <br>> not<br>> > returned properly.<br>> ><br>> ><br>> > I have looked at locking via a view but can not<br>> lock<br>> > on a complex view. Am looking at lock table in<br>> share<br> > > mode now. Any suggestions would be greatly<br>> > appreciated. <br>> ><br>> ><br>> > Many Thanks,<br>> > -Lizz<br>> ><br>> --<br>> Anthony Wilson<br>><br><br><br><br><br> <br>__ ____ ____ ____ ____ ____ ______<br>Yahoo! Mail - PC Magazine Editors' Choice 2005<br><a href="http://mail.yahoo.com">http://mail.yahoo.com</a><br>-- <br><a href="http://www.freelists.org/webpage/oracle-l">http://www.freelists.org /webpage/oracle-l </a><br></blockquote></div><br><br clear="all"><br>-- <br>-- ---- ---- ---- --- -- ------<br>select standard_disclaimer from company_requirements where category = 'MANDATORY';<br>