Il y a une personne de table (identifiant, nom). J'insère plus de 1000 records dans la table des personnes. Les deux identifiant et le nom doivent être uniques. J'ai écrit quelque chose comme ça Je reçois une contrainte unique pour le nom dans cette requête. Comment savoir quel enregistrement en particulier échoue. Tout ce que je vois dans les journaux est celui-ci p> erreur de départ à la ligne: 3 dans la commande - ORA-00001: contrainte unique
(UN_PERSON_NAME) violé. P>
blockQuote> Cela ne dit pas l'enregistrement exact qui est en double. p> p>
3 Réponses :
vous manquez valeurs code> mot-clé. Essayez cela! INSERT ALL
INTO PERSON values(1, 'MAYUR')
INTO PERSON values(2, 'SALUNKE')
.....(1000 records)
SELECT * FROM DUAL;
INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1
Bien que cette réponse soit utile, il est conseillé de donner une explication appropriée sur ce que le problème est et comment vous avez résolu
Si vous souhaitez insérer des données d'une table à une autre table, utilisez cette requête pour insérer des données. Mais vous avez la même longueur de colonne dans Sélectionner et insérer une instruction
Malheureusement, Oracle ne prend pas en charge plusieurs inserts à l'aide d'une seule valeur () code> instruction. J'approche habituellement cela comme suit: INSERT PERSON (id, name)
SELECT rownum, x.name
FROM (SELECT 'MAYUR' FROM DUAL UNION ALL
SELECT 'SALUNKE' FROM DUAL UNION ALL
.....
) x
Tout à fait confondre avec insérer tout puis sélectionnez *, si vous voulez vraiment savoir quelle ligne ont un problème, mieux les diviser en ligne séparée.
Premièrement, insérez la table TEMP (TEMP_PERSON) sans contraintes uniques, puis groupe par nom pour voir quel nom est dupliqué