Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle insere registro automaticamente no bloco multirecord parte 2


DUPLICATE_RECORD é um procedimento restrito e você não pode usá-lo em WHEN-VALIDATE-RECORD gatilho (ou qualquer outro do mesmo tipo).

Como você tem que navegar para o próximo registro (se quiser copiá-lo), mesmo que você coloque esse procedimento restrito em outra unidade de programa PL/SQL, tudo será apenas propagação e - em última análise - levantam o mesmo erro. Então... você está sem sorte.

Mesmo se você escrevesse um procedimento (armazenado) que inseriria essa linha "Jr" no banco de dados em algum lugar por trás da cena, você teria que buscar esses valores na tela. Como EXECUTE_QUERY é a maneira de fazê-lo, e como é (ainda outro) procedimento restrito, isso também não funcionará.

Se você planejava limpar o bloco de dados e preenchê-lo manualmente (usando um loop), teria que navegar para o próximo (e próximo e próximo) registro com NEXT_RECORD , e isso é novamente um procedimento restrito. Além disso, se fosse um bloco de dados (e sim, é), você realmente criaria duplicatas para todos os registros, uma vez que você salvasse as alterações - ou falharia com violação de restrição exclusiva (o que é bom) ou você criaria duplicatas (o que é pior).

BTW o que há de errado com WHEN-NEW-RECORD-INSTANCE ? Quais são os problemas que você tem ao usá-lo?