Essayer d'insérer des valeurs si la valeur de colonne particulière n'existe pas dans le tableau
J'ai essayé avec une sous-requête dans l'instruction P> si le lion n'existe pas alors La déclaration doit fonctionner p> Donnez-moi une idée de ce que je manque car je suis un débutant à Oracle Requêtes. aidez-moi à procéder plus loin. Merci d'avance p> p>
3 Réponses :
S'il vous plaît essayez ci-dessous. Merci,
Erreur SQL: ORA-00933: commande SQL non terminée correctement 00933. 00000 - "commande SQL non terminée" * Cause: * Action:
Merci Nick pour votre temps, très apprécié
Puisque vous avez une condition, je pense que vous devez faire un insert dans ... Sélectionnez:
(Mise à jour: L'instruction Créer une table est là pour fournir des données de test simples. Cela ne fait pas partie de la solution). P>
Créer une table animaldata (premier, royaume, noms, num, nl, dtte, s) comme grève> p>
Sélectionnez 1, 'Animaux', 'Tiger', 'Tiger' , 11, 'A', '13 -06-2019 ', "arrêter" de double; p> meilleures salutations,
Ragoût Ashton P> P>
Salut Steve Vous avez ajouté créer une table et une question au début de la requête, pourquoi est-ce que le ragoût que je suis nouveau, voulez-vous s'il vous plaît plus précis. Merci Steve
Pour être plus précis, j'ai juste besoin d'insérer si le lion n'existe pas dans les noms de colonne Steve
La déclaration de table Create ne fait pas partie de la solution. Je l'ai utilisé pour créer des données de test afin que tout le monde puisse tester ma solution. J'ai mis à jour ma réponse pour limiter la confusion.
"Pour être plus précis, j'ai juste besoin d'insérer si le lion n'existe pas dans les noms de colonne Steve", il est ragoût pas Steve. Je comprends votre besoin. Ma solution répond à ce besoin. L'avez-vous essayé? Voyez-vous quelque chose de mal avec ça?
Awch .. !! Mon mauvais ragoût, s'il vous plaît ne vous dérange pas et j'ai essayé votre requête et que vous avez obtenu en résultat que zéro des lignes insérées, et cela fonctionne bien, je suppose que la valeur de lion existe déjà dans la table, il n'est pas inséré. Merci pour votre temps. et un doute de doute ragoût, soit de retour dans un moment
Merci beaucoup à Steve pour m'aider et en tant que débutant, votre contribution est précieuse pour moi. Merci beaucoup de ragoût.
Tout d'abord, n'utilisez pas à la place, vous devrait créer une séquence et l'utiliser dans vos inserts. P> Suivant, si vous essayez de faire une upser (mettre à jour la ligne si elle existe ou insère si elle ne le fait pas), vous pouvez utiliser une déclaration de fusion . Dans ce cas, vous essayez d'insérer une ligne si cela n'existe pas déjà, vous n'avez donc pas besoin de la partie de mise à jour. P> Par conséquent, vous devriez faire quelque chose comme: P> < Pré> xxx pré> Notez que j'ai essayé de spécifier les colonnes insérées dans - c'est une bonne pratique! Code qui conserve des instructions qui n'échètent pas les colonnes insérées dans sont sujets aux erreurs si quelqu'un doit ajouter une colonne à la table. P> J'ai également supposé que la colonne que vous ajoutez la date à laquelle vous ajoutez la date. de date datatypee; J'ai utilisé Sysdate (tronqué pour supprimer la partie temporelle) comme valeur à insérer, mais vous pouvez utiliser une date spécifique, auquel cas vous devez utiliser max ( to_date (
Excellents commentaires. J'ai simplement répondu à la question qui lui est demandé sans passer le mile supplémentaire. Juste deux choses: Tout d'abord, vous avez besoin d'une virgule après "inconnu_col", et deuxièmement, lorsque vous testez votre code, je reçois "ORA-02287: numéro de séquence non autorisé ici"
D'Oh! Merci pour ça!