Most likely you re-use the same value from the sequence.
If you're inserting data based on a select query, then use the sequence inside the select. So something like:
INSERT INTO MyTable (
PrimaryKeyCol,
SomeCol1,
SomeCol2,
...)
SELECT
MySequence.NextVal,
SomeColumn,
AnotherColumn,
...
FROM MyTable
WHERE ....
Addition:
If the sequence is ordered:
- run
select max(keycolumn) from yourtable;
- run
select sequence.nextval from dual;
now if the highest value in your table is for example 10 and the sequence.nextval returned 7, then execute
select sequence.nextval from dual;
3 times