First if this "Counter" is there for every record
you should use a sequence.
Like
create sequence my_count_seq
start with 1
increment by 1
maxvalue 9999999
cache 20
nocycle
start with is the starting number
increment by is, well that is how it counts, it can me any number but 0 becauce then you don't have a counter but a constant
maxvalue is the max the counter goes to, if you do not include this in your statement max will be unlimited
cache is how many numbers Oracle will cache in the SGA, this means that getting the next number is a bit faster. However, if your server shutsdown or crashes, then those number will be lost. NOCACHE will not cache any numbers
NOCYCLE means that if it hits the MAX then it won't start over again, but that also means you can't get any more numbers.
To get the next value in the sequence, you use the my_counter_seq.nextval, you cna use the dual table to get it into a variable if you don't have it directly in the insert command.
So here is an example of an insert command
insert into my_table (account, value)
values
('jack(' || my_counter_seq.nextval || ')', 100).
Hope that helps.
Mark