Mon objectif est de passer des symboles de pourcentage dans une chaîne.
Il n'y a pas de résultat au% put quand je cours:
%let foo = %nrstr(bar%x%);
%put foo is &foo;
Si je recommence, j’obtiens des erreurs, la première est
AVERTISSEMENT: La chaîne citée en cours de traitement est devenue plus de 262 octets de long. Vous pourriez avoir des guillemets déséquilibrés. "
Dans Enterprise Guide, l’agenda de parenthèse ne détecte pas la parenthèse proche.
Ajouter une autre parenthèse proche:
%let foo = %nrstr(bar%x%));
résultats:
foo est bar% x)
% nrstr laissera passer le résultat entre parenthèses non équilibrées, ce qui n’est donc pas surprenant. Cela semblerait impliquer que l’extrait contenant seulement les parenthèses ouverte et fermée est équilibré.
Réponses:
3 pour la réponse № 1Le symbole de pourcentage avant la parenthèse proche était à l'origine du comportement inattendu.
Par SAS (R) 9.2 Macro Language: Référence:
signe de pourcentage avant une parenthèse - par exemple,% (ou%) deux signes de pourcentage (%%): EXEMPLE:% let x =% str (20%);
faire le bon code:
%let foo = %nrstr(bar%x%%);
%put foo is &foo;
résultant en:
foo est bar% x%