{"id":57,"date":"2026-05-25T10:41:59","date_gmt":"2026-05-25T10:41:59","guid":{"rendered":"https:\/\/www.sasreference.com\/fr\/?p=57"},"modified":"2026-05-25T11:06:36","modified_gmt":"2026-05-25T11:06:36","slug":"ces-petits-plus-qui-manquent-a-sas-9-4","status":"publish","type":"post","link":"https:\/\/www.sasreference.com\/fr\/blog\/ces-petits-plus-qui-manquent-a-sas-9-4\/","title":{"rendered":"Ces petits trucs qui manquent \u00e0 la syntaxe de SAS 9.4"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Voici quelques fonctionnalit\u00e9s manquantes qui seraient pratiques pour les programmeurs SAS.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Signalez les probl\u00e8mes r\u00e9els, pas les probl\u00e8mes potentiels<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dans les premi\u00e8res versions du langage SAS, il \u00e9tait possible et courant de r\u00e9duire la longueur d&rsquo;une variable dans une \u00e9tape data en d\u00e9finissant la longueur de la variable avant l&rsquo;instruction <code>set<\/code>, sans g\u00e9n\u00e9rer de message d&rsquo;avertissement dans le journal. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depuis lors, les choses ont chang\u00e9. L&rsquo;option globale contr\u00f4lant la longueur des variables g\u00e9n\u00e8re un message d&rsquo;alerte :\u00a0<code>varlenchk=warn<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>*options varlenchk=warn;\n\ndata demo;\n    set sashelp.class (keep=name sex where=(length(name)=4));\nrun;\n\ndata demo;\n    length name $4;\n    set demo;\nrun;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>WARNING: Multiple lengths were specified for the variable name by input data set(s). This can cause truncation of data.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Plut\u00f4t que de sugg\u00e9rer que les valeurs pourraient \u00eatre tronqu\u00e9es, il serait pr\u00e9f\u00e9rable que le syst\u00e8me v\u00e9rifie lui-m\u00eame et ne m&rsquo;en informe que si c&rsquo;est effectivement le cas.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Lister plusieurs noms de datasets dans une proc\u00e9dure pour l&rsquo;option <code>data=<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cet exemple, il n&rsquo;est pas possible d&rsquo;afficher tous les datasets commen\u00e7ant par <code>demo<\/code> en utilisant <code>demo:<\/code> dans la proc\u00e9dure <code>proc print<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>data demo_male;\n    set sashelp.class (keep=name sex where=(sex='M'));\nrun;\n\ndata demo_female;\n    set sashelp.class (keep=name sex where=(sex='F'));\nrun;\n\n*La syntaxe suivant n'est pas accept\u00e9e avec SAS 9.4;\nproc print data=demo:;\nrun;<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Signaler par d\u00e9faut les probl\u00e8mes de merge<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Un message signalant des probl\u00e8mes de fusion n&rsquo;appara\u00eet dans le journal que lorsque l&rsquo;option globale <code>msglevel=i<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il s&rsquo;agit uniquement d&rsquo;un message d&rsquo;\u00ab Information \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce message important est difficile \u00e0 rep\u00e9rer pour les raisons suivantes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Les messages \u00ab Information \u00bb sont \u00e9crits en noir.<\/li>\n\n\n\n<li>Ce message important se perd au milieu de nombreux autres messages \u00ab Information \u00bb non pertinents.<\/li>\n\n\n\n<li>Dans SAS Studio, seuls les messages ERROR, WARNING et NOTES sont pris en compte dans le filtre du journal.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>options msglevel=i;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il serait donc tr\u00e8s utile que ce message figure au minimum dans les NOTEs importantes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici quelques fonctionnalit\u00e9s manquantes qui seraient pratiques pour les programmeurs SAS.<\/p>\n","protected":false},"author":1,"featured_media":63,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":4,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"predecessor-version":[{"id":64,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/posts\/57\/revisions\/64"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/media\/63"}],"wp:attachment":[{"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sasreference.com\/fr\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}