Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Counting number of rows, sequences with no sequences

Re: Counting number of rows, sequences with no sequences

From: Juan Cachito Reyes Pacheco <jreyes_at_dazasoftware.com>
Date: Wed, 18 Feb 2004 09:30:03 -0400
Message-ID: <003501c3f623$52ea9760$2501a8c0@dazasoftware.com>


I don't think so, if you put in a insert ( +1 ) and in an update trigger ( -1) per record,
this will be automatic,
Or if you do mass updates, for example every night, you update x records, you can update the total count.
I agree absolutely with you, obviously, if this table is heavily updated, this is not the idea. A performance test is needed. This is only an idea, I think we are trying to get ideas, maybe another interesting idea con come from here.
Personally I wouldn't do this technique to get counts.

Aclaration about a joke for newbies.
The example down here, someone posted, I suppose no body had runed it, because it truncates the table, this is only a joke. it erases all record and then returns 0
(a fixed number), this will always work beacuse afeter you erase all record obviously you only have 0 records.
create or replace function count_rec(tbl in varchar2) return
> integer
> 2 as
> 3 PRAGMA AUTONOMOUS_TRANSACTION;
> 4 trunc varchar2(256):='truncate table '||tbl;
> 5 begin
> 6 execute immediate trunc;
> 7 return(0);
> 8 end;
> 9 /
>

now
----- Original Message -----
From: "Jan Pruner" <JPruner_at_email.cz>
To: <oracle-l_at_freelists.org>
Sent: Tuesday, February 17, 2004 7:07 PM Subject: Re: Counting number of rows, sequences with no sequences

Wrong.
1. RTFM - Function cannot write to the database, if the function is being called from a SELECT statement.

2. your script is good for single user environment, but in multiuser environment (like Oracle) will produce a BIG problem!!!

JP

Juan Cachito Reyes Pacheco wrote:

> What you can do is to create a one record table, the if the transaction
> rollbacks it will rollback
>
> create table sequence( value number);
>
> function getnewsequence
> select value+1 into variable from sequence;
> update table sequence value=variable ;
> return variable ;
> end;
>
> ----- Original Message -----
> From: "Mladen Gogala" <mladen_at_wangtrading.com>
> To: <oracle-l_at_freelists.org>
> Sent: Tuesday, February 17, 2004 6:13 PM
> Subject: Re: Counting number of rows, sequences
>
>
> What happens if the transaction is rolled back?
>
> On 02/17/2004 05:03:14 PM, Juan Cachito Reyes Pacheco wrote:
>
>>The other choice if you have to frecuently do counts to that table is
>>a
>>sequence
>>
>>You create an addiatoinal field with a sequence
>>
>>CREATE SEQUENCE, etc.
>>
>>row sequence
>>
>>1 1
>>2 2
>>....
>>1234 1234
>>
>>Then you select from the sequence the currval, and this is immediate.
>>



Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------


----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request_at_freelists.org
put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------
Received on Wed Feb 18 2004 - 07:30:03 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US