I have a programe which run both on EG and as a stored procedure. when I ran in EG in prod or Dev enviroment the libname automatically select the enviroment and ran the code, But when it is run as stored Procedure, it need to be change as manually for each enviroment.
I tried all option but not able to make the libname dynamic for Stored procedrue. Pls help me to suggest how to make dynamic code for libname in stored.
I would not change the library reference in the program.
Instead define the libraries in metadata with the same libref, but different paths. Then assign one definition to the prod stored process server and the other to the dev stored process server.
Assume you have two directories:
In SAS Management Console (Plug-Ins), open the Data Library Manager
Right-Click Libraries, select New Library
Name it XXX-Prod, on the next tab, assign it to the production server, in Options, give it the libref XXX, and set the path to /sasdata/xxxprod
Once you have finished, repeat the same, but name it XXX-Dev, assign it to the development server, and set the path to /sasdata/xxxdev
You now have a libref XXX in both production and development, which points to different paths, depending on the server context.
The SAS program will not need to do any changes to the library. But you will need separate stored process definitions for the prod and dev server, both pointing to the same physical SAS program file.
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.