Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Registros invertidos na tabela

Olá, tudo bem? Criei a procedure que insere registros na tabela segmercado. É esta aqui:

create or replace PROCEDURE incluir_segmercado
    (p_id IN NUMBER ,
     p_descricao IN VARCHAR2)
IS
BEGIN

    INSERT INTO SEGMERCADO VALUES (p_id, UPPER(p_descricao));
    COMMIT;

END;

Só que quando rodo o comando abaixo:

EXECUTE INCLUIR_SEGMERCADO(3, 'mercadista')

Ao invés de incluir o registro na próxima linha dos registros anteriormente criados, está criando na primeira linha. Aí ao invés de os id's ficarem na sequência, fica 3,1,2 no select. Pra que eu possa ver na ordem correta preciso ordenar por id. Alguém sabe o porquê isso acontece?

2 respostas
solução!

Oi Giovani,

O problema deve ser porque a tabela não foi criada com a instrução ORGANIZATION INDEX, e com isso não há garantias de que os registros serão ordenados no insert.

Dá uma lida aqui para saber mais a respeito: https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables012.htm#ADMIN01506

Show. Muito obrigado.