L'action `table.update` du jeu d'actions 'table' est utilisée pour modifier les données d'une table CAS en mémoire. Elle est particulièrement utile pour les opérations de mise à jour transactionnelle ou en masse. Les mises à jour peuvent être effectuées sur l'ensemble de la table ou sur un sous-ensemble de lignes spécifié par une clause WHERE. Les nouvelles valeurs des colonnes peuvent être des constantes littérales, des expressions basées sur d'autres colonnes de la table, ou une combinaison des deux. Il est important de noter que les valeurs littérales de type caractère (comme 'Sport Sedan' ou '31,000') sont automatiquement converties si la colonne cible a un type numérique compatible.
Analyse des données
Type : CREATION_INTERNE
Les exemples utilisent des données générées (datalines) ou SASHELP, puis téléchargées vers CAS pour manipulation.
1 Bloc de code
PROC CAS / DATA step Data
Explication : Cet exemple initialise une table `produits` en mémoire CAS. Ensuite, il utilise l'action `table.update` pour augmenter le 'Prix' de tous les produits de 5%. L'action `table.fetch` affiche les résultats de la mise à jour.
Explication : Cet exemple met à jour les produits dont le 'Statut' est 'Rupture'. Pour ces produits, le 'Prix' est réduit de 10% et le 'Statut' est changé en 'EnStock'. Cela démontre une mise à jour conditionnelle sur plusieurs colonnes.
Explication : Cet exemple utilise des macro-variables pour rendre la mise à jour plus dynamique. Les produits d'une catégorie spécifique (ici 'Electronique') voient leur prix augmenter de 15% et leur 'NomProduit' est préfixé par 'MAJ-'. Cela illustre l'utilisation d'expressions complexes et de macro-variables.
TABLE.fetch / TABLE='produits' / to=100; /* Fetch toutes les lignes pour vérification */
15
QUIT;
4 Bloc de code
PROC CAS Data
Explication : Ce scénario montre comment l'action `table.update` peut être utilisée pour des validations. Le premier bloc tente de mettre à jour un produit inexistant, démontrant la gestion des retours. Le second bloc met à jour le statut des produits dont le stock est inférieur ou égal à 10, changeant la valeur numérique 'Stock' en une chaîne de caractères 'Faible'. Cela illustre l'utilisation de la fonction `input` pour la conversion de type dans la clause `where`.
Copié !
data mycas.stock_produits;
length NomProduit $30 Stock Initial $10;
input NomProduit Stock $;
datalines;
Ordinateur Portable 10
Smartphone 50
Souris 200
Clavier 0
Ecran 30
Tablette 5
;
run;
proc cas;
session casauto;
table.promote / caslib='mycas' name='stock_produits';
/* Tentative de mise à jour pour un produit non existant */
r = table.update {
table='produits',
where="NomProduit = 'ProduitInexistant'",
set={
{var='Prix', value='Prix + 100'}
}
};
print r;
/* Mise à jour conditionnelle avec vérification de stock */
r = table.update {
table='stock_produits',
where="input(Stock, ?? best.) <= 10",
set={
{var='Stock', value="'Faible'"}
}
};
print r;
table.fetch / table='stock_produits';
quit;
/* Tentative de mise à jour pour un produit non existant */
19
r = TABLE.update {
20
TABLE='produits',
21
where="NomProduit = 'ProduitInexistant'",
22
SET={
23
{var='Prix', value='Prix + 100'}
24
}
25
};
26
PRINT r;
27
28
/* Mise à jour conditionnelle avec vérification de stock */
29
r = TABLE.update {
30
TABLE='stock_produits',
31
where="input(Stock, ?? best.) <= 10",
32
SET={
33
{var='Stock', value="'Faible'"}
34
}
35
};
36
PRINT r;
37
TABLE.fetch / TABLE='stock_produits';
38
QUIT;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.