<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: What Language do I need? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179129#M34215</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The environment is Linux.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Users are relatively sophisticated.&amp;nbsp; They are capable of writing programs, and they are able to issue macro calls (with parameters) in their programs.&amp;nbsp; Because of the number of parameters (including those with defaults), the environment is likely to be batch-oriented.&amp;nbsp; But if there are interactive products that can populate parameters with default values, that would be a possibility.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Jan 2015 19:37:42 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2015-01-12T19:37:42Z</dc:date>
    <item>
      <title>What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179127#M34213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm considering an application that will take user-entered parameters and generate programming code.&amp;nbsp; Normally, I would use SAS macro language for this task.&amp;nbsp; However, in this case the generated code is native SQL and would be unrelated to SAS.&amp;nbsp; (Technically, I could force SAS to run the SQL code, but that's just an added layer of complexity.)&amp;nbsp; What other languages are there that would be useful for generating code based on user inputs?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this particular case, the server that will execute this code does not already have SAS on it.&amp;nbsp; If it did, I would just use SAS.&amp;nbsp; But it seems a waste to install SAS on a server just to be able to generate non-SAS programming code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 19:26:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179127#M34213</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-01-12T19:26:17Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179128#M34214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What OS are you on? When you say User Input what type of interactivity do you require?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If on Windows, VB.net or a JavaScript application can work. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Python works across all platforms so it's nice that way...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 19:32:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179128#M34214</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2015-01-12T19:32:56Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179129#M34215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The environment is Linux.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Users are relatively sophisticated.&amp;nbsp; They are capable of writing programs, and they are able to issue macro calls (with parameters) in their programs.&amp;nbsp; Because of the number of parameters (including those with defaults), the environment is likely to be batch-oriented.&amp;nbsp; But if there are interactive products that can populate parameters with default values, that would be a possibility.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 19:37:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179129#M34215</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-01-12T19:37:42Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179130#M34216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can do this with pretty much any programming language.&amp;nbsp; You could just write a shell script.&amp;nbsp; It depends more on personal preference, how you want to interact with the database in question and it's intended output, and how you want the users to interface with it.&amp;nbsp; Given your expected background skills being strictly related to SAS, I would stick to it as much as possible and provide a CLI (command line interface) written in a unix shell language, such as bash.&amp;nbsp; You can simply write all the code in sas macro and run it in code with prompts collected in shell and passed to SAS in sysparm.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 20:02:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179130#M34216</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2015-01-12T20:02:54Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179131#M34217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When it is just native sql in a old ansi style you are already having eguide query builder.&lt;/P&gt;&lt;P&gt;Graphical drag drop for all fields tables is more easy as hand coding. There are many tools doing that.&lt;/P&gt;&lt;P&gt;From eguide you could translate librefs. That is going to be explicit pst sql easily to transfer into other runtime environments.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 20:11:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179131#M34217</guid>
      <dc:creator>jakarman</dc:creator>
      <dc:date>2015-01-12T20:11:12Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179132#M34218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have used shell script with SQL statements before, where User Input was passed into the embedded SQL statements within the *.sh file&lt;/P&gt;&lt;P&gt;on Linux, you can use Bash shell to display prompts with predetermined options and validation as a mechanism to gather user input, then pass those values to the embedded SQL statements, where applicable...!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just a thought, Hope it helps,&lt;/P&gt;&lt;P&gt;Ahmed&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 20:15:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179132#M34218</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2015-01-12T20:15:54Z</dc:date>
    </item>
    <item>
      <title>Re: What Language do I need?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179133#M34219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is an example using bash and Oracle's sqlplus tool:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#!/bin/bash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#Defaults&lt;/P&gt;&lt;P&gt;USER="user"&lt;/P&gt;&lt;P&gt;PASS="pass"&lt;/P&gt;&lt;P&gt;PATH="database"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#Usage&lt;/P&gt;&lt;P&gt;function usage {&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "Usage:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp; ${0##*/} [-u] [-p] [-d] SEX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp; -u | --user&amp;nbsp;&amp;nbsp; + Username&amp;nbsp;&amp;nbsp;&amp;nbsp; + ${USER} "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp; -p | --pass&amp;nbsp;&amp;nbsp; + Password&amp;nbsp;&amp;nbsp;&amp;nbsp; + ${PASS} "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp; -d | --path&amp;nbsp;&amp;nbsp; + Database&amp;nbsp;&amp;nbsp;&amp;nbsp; + ${PATH} "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp; SEX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + M/F&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if [[ "$1" =~ ^((-{1,2})([Hh]$|[Hh][Ee][Ll][Pp])|)$ ]]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp; usage; exit 1&lt;/P&gt;&lt;P&gt;else&lt;/P&gt;&lt;P&gt;&amp;nbsp; while [[ $# -gt 0 &amp;amp;&amp;amp; "$1" =~ ^-{1,2}.* ]]; do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; opt="$1"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; shift;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; current_arg="$1"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [[ "$current_arg" =~ ^-{1,2}.* ]]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "ERROR: You left an argument blank." &amp;gt;&amp;amp;2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case "$opt" in&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-u"|"--user" ) USER="$1"; shift;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-p"|"--pass" ) PASS="$1"; shift;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "-d"|"--path" ) PATH="$1"; shift;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) echo "ERROR: Invalid option: \""$opt"\"" &amp;gt;&amp;amp;2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit 1;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; esac&lt;/P&gt;&lt;P&gt;&amp;nbsp; done&lt;/P&gt;&lt;P&gt;fi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SEX=$1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if [[ "${SEX}" != "M" &amp;amp;&amp;amp; "${SEX}" != "F" ]]; then&lt;/P&gt;&lt;P&gt;&amp;nbsp; echo "ERROR: Invalid value for SEX" &amp;gt;&amp;amp;2&lt;/P&gt;&lt;P&gt;&amp;nbsp; exit 1&lt;/P&gt;&lt;P&gt;fi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sqlplus -s $USER/$PASS@$PATH &amp;lt;&amp;lt; __SQL__&lt;/P&gt;&lt;P&gt;set echo off head off pages 0 trimspool on feedback off timing off time off&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SELECT *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM mytable&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sex = '${SEX}';&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit&lt;/P&gt;&lt;P&gt;__SQL__&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is an example using PROC SQL in SAS, just replace the bottom:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ensure sas in $PATH&lt;/P&gt;&lt;P&gt;sas -stdio -sysparm "$USER $PASS $PATH $SEX" &amp;lt;&amp;lt; __SAS__ 2&amp;gt;/dev/null&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; DATA _NULL_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUTX('sex', CATS("'", "%scan(&amp;amp;sysparm, 4)", "'"));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; PROC SQL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONNECT TO ORACLE(USER=%scan(&amp;amp;sysparm, 1) PASS=%scan(&amp;amp;sysparm, 2) PATH=%scan(&amp;amp;sysparm, 3));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT * FROM CONNECTION TO ORACLE (&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM class&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE sex=&amp;amp;sex&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DISCONNECT FROM ORACLE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; QUIT;&lt;/P&gt;&lt;P&gt;__SAS__&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or do it all in SAS with a macro:&lt;/P&gt;&lt;P&gt;#!/bin/bash&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SYSPARM=$(echo ${@} | tr " " ",")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/usr/local/SASHome/SASFoundation/9.4/sas -stdio -sysparm "$SYSPARM" &amp;lt;&amp;lt; __SAS__ 2&amp;gt;/dev/null&lt;/P&gt;&lt;P&gt;%macro mymacro(sex, USER=foo, PASS=bar, PATH=mydb)/minoperator;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file stdout;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "NOTE: USER=&amp;amp;user PASS=&amp;amp;pass PATH=&amp;amp;path";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %if not(&amp;amp;sex in M F) %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file stdout;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put "ERROR: Invalid value for SEX";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %abort return 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; %end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; proc sql;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select * from sashelp.class where sex="&amp;amp;sex.";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; quit;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;%mymacro(&amp;amp;sysparm.);&lt;/P&gt;&lt;P&gt;__SAS__&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Obviously, these are all overly simple examples.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2015 00:50:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/What-Language-do-I-need/m-p/179133#M34219</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2015-01-13T00:50:18Z</dc:date>
    </item>
  </channel>
</rss>

