Oracle: mise à Jour d'un datarow en ajoutant à la valeur existante
J'ai une grande table dans ma base de données(Oracle 11g) lorsque je veux mettre à jour une colonne de la table où j'ai des chiffres précis il.
Je veux mettre à jour la configuration d'une prefix
en face de chaque valeur de cette colonne.
Exemple (SpecificNumber est int
et le PK, Valeur1 est Varchar2
et est donc la dernière colonne):
Données réelles:
[SpecificNumber] [Value1] [column2gettingupdated]
[1] 123456789 Test text
[2] 123456789102 sth text2
[3] 12233 text test3
Données à l'avenir(après mon sql):
[SpecificNumber] [Value1] [column2gettingupdated]
[1] 123456789 Test PREFIX-text
[2] 123456789102 sth PREFIX-text2
[3] 12233 text PREFIX-test3
Donc ce que je pensais:
Update table
set column2gettingupdated=("prefix"+
(select column2gettingupdated from table where SpecificNumber = '12233')
)
where SpecificNumber = '12233';
Mais cela me donne une ORA-00904: "p": invalid identifier
erreur.
Et si j'essaye ceci:
Update table
set column2gettingupdated=("prefix"+
(select column2gettingupdated from table where SpecificNumber = '12233')
)
where SpecificNumber = '12233';
- Je obtenir une ORA-01722: invalid number
erreur.
Est-ce même possible ? Déjà merci pour votre aide!
SET column2gettingupdated=CONCAT("prefix-",column2gettingupdated)
vrai. Un peu oublié CONCAT, et toujours pensé que c'est uniquement pour mysql. De toute façon post comme réponse et vous obtenez le crédit! (Mais remplacez "avec", si vous utilisez " - vous d'obtenir l'identifiant invalide erreur.)
OriginalL'auteur DatRid | 2014-10-16
Vous devez vous connecter pour publier un commentaire.
Tout ce qui est nécessaire est d'utiliser l'opérateur de concaténation,
||
. Mise à jour de la syntaxe ne nécessite pas que vous avez une sous-requête pour obtenircolumn2gettingupdated
pour la valeur, 12233.Aussi, avec Oracle VARCHAR2, vous utilisez des guillemets simples et pas de guillemets doubles. Il en résulte cette syntaxe de cette instruction:
Voici un exemple à partir de l'exemple de schéma SCOTT:
OriginalL'auteur Patrick Bacon
Utiliser la concaténation de chaînes de caractères:
OriginalL'auteur Rusty