Maybe more details would have been needed here.
A decision on how to get the numbers for new records should be made, as there are many options. You could use a sequence, or you could issue a SELECT max() query, or you could store the number from the last record in another table and update it after each insertion, etc.
Using a sequence, it would be something similar to this:
<pre>SELECT category || ‘-’ || TO_CHAR(your_sequence.nextval,’fm0000′)