- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Implicit: You code in SAS syntax, SAS formats a query for you in the database's syntax and passes that query to the database. Some processing will be done within the database but SAS could also do some processing of the results set.
Explicit: You code in the database's syntax. SAS passes the query directly to the database for execution without modification. There is 100% execution of the query within the database (unless you code something in addition to what is passed to the database).
Jim
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
That's a badly worded question.
Libnames can be used for explicit and for implicit SQL. Explicit simply means that SAS does not translate the SQL to native database SQL. Instead the SQL is explicitly supplied by the user.
Consider:
libname ORA oracle connections parameters ...;
proc sql;
connect using ORA;
select * from connection to ORA (
select COL1
, listagg(COL2, ', ') within group (order by COL2) "names"
from TABLE1
group by COL1
)
order by put(COL1,myfmt.);
Here the SAS code is in blue and the Oracle code in red.
You could have SAS code only (though of course there would only be SAS syntax then).
libname ORA oracle connections parameters ...;
proc sql;
select ...
from ORA.TABLE1
group by ...
order by put(COL1,myfmt.);