Comment mettre à jour une colonne de concaténer des deux autres colonnes dans un même tableau
J'ai un tableau avec 3 colonnes a, b et c. Je veux savoir comment faire pour mettre à jour la valeur de la troisième colonne avec concaténer des deux autres colonnes dans chaque ligne.
before update
A B c
-------------
1 4
2 5
3 6
after update
A B c
-------------
1 4 1_4
2 5 2_5
3 6 3_6
Comment puis-je faire dans oracle?
OriginalL'auteur jalal rasooly | 2015-02-16
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous enfreignez les règles de normalisation. Vous devez re-réfléchir à la conception. Si vous avez les valeurs dans les colonnes de la table, puis d'obtenir une valeur calculée, tous vous avez besoin est un sélectionnez déclaration pour récupérer le résultat de la façon dont vous le souhaitez. Le stockage des valeurs calculées est généralement une mauvaise idée et considéré comme une mauvaise conception.
De toute façon,
Puisque vous êtes sur
11g
, Si vous voulez vraiment avoir une colonne calculée, alors je vous suggère un COLONNE VIRTUELLE que mise à jour manuelle de la colonne. Il y a beaucoup de généraux impliqué avec un mise à JOUR déclaration. À l'aide d'une colonne virtuelle permettrait de réduire beaucoup de frais généraux. Aussi, vous débarrasser complètement de l'effort manuel et ces lignes de code pour faire la mise à jour. Oracle fait le travail pour vous.Bien sûr, vous allez utiliser la même condition de concaténation dans la colonne virtuelle de la clause.
Quelque chose comme,
Column_c varchar2(50) GENERATED ALWAYS AS (column_a||'_'||column_b) VIRTUAL
Remarque : Il existe certaines restrictions sur son utilisation. N'hésitez pas à consulter la documentation avant de la mettre en œuvre. Cependant, pour le cas simple d'utilisation fournis par les OP, une colonne virtuelle est une coupe droite.
Mise à jour j'ai fait un petit test. Il y avait quelques observations. Veuillez lire ce question pour une meilleure compréhension sur la façon de mettre en œuvre ma suggestion.
OriginalL'auteur Lalit Kumar B
Utiliser l'opérateur de concaténation
||
:Ou mieux, pour éviter de refaire cela à chaque fois que les lignes sont insérées ou mises à jour:
OriginalL'auteur Bohemian