J'ai une table "factures". La table est de 190 000 rangées. Mais il y a un problème. Dans la colonne "Docnumber", tous les enregistrements de ce format "Y-1000", "Y-1000", "Y-1001" et je souhaite être liés à tous les enregistrements de Y à P. qu'il y avait tous des enregistrements de ce format "P-1000", " P-1001 ". Mais je ne comprends pas comment faire correctement, je vous serai reconnaissant de l'aide! P>
3 Réponses :
Vous pouvez utiliser des fonctions de chaîne. Ce qui suit remplace le premier caractère de chaque valeur de la colonne avec en fonction de votre exigence réelle, vous pouvez être un peu plus précis, car Exemple en garantissant que 'p' code>:
docnumber code> commence par
'y' code>: p>
Le demandeur veut changer y-1001 code> sur
p-1001 code>, pas l'autre tour :)
Veuillez utiliser ci-dessous Query:
update Invoice_test set docnumber = 'P'||SUBSTR(DOCNUMBER, 2) where SUBSTR(DOCNUMBER, 1,1) = 'Y';
Ceci est un simple remplacement de Bien sûr, cela suppose que le reste de la chaîne ne peut pas contenir de La requête suivante montre que ceci est le résultat: p> y code> à
p code> dans la colonne. Donc une mise à jour simple avec la fonction
remplacer code> résoudra le problème.
P code>. Si cela peut, alors une expression régulière basée sur la fonction fonctionnera à l'aide de la fonction
regexp_replace code> qui ne remplacera que le début
y code>. P>
regexp_replace code> ne remplace que le début
y code> p>
Jetez un coup d'œil à la fonction
remplacer code>. docs.oracle.com/cd/e11882_01/server. 112 / E41084 / ...
@APC Toutes ces valeurs numériques DOC commencent par "y-"!)