Base SAS provides a scalable, integrated software environment specially designed for data access, transformation and reporting. It includes a fourth-generation programming language; ready-to-use programs for data manipulation, information storage and retrieval, descriptive statistics and report writing; and a powerful macro facility that reduces programming time and maintenance headaches.
Base SAS includes these items: Procedures, DATA Step language, DS2 language, SAS FedSQL language, Macro facility, Output Delivery System (ODS), and ODS Graphics.
The most recent release is Base SAS 9.4.
What's New in Base SAS 9.4
Two New Languages
- DS2 is a SAS proprietary programming language that is appropriate for advanced data manipulation and applications. It also includes additional data types, ANSI SQL types, programming structure elements, and user-defined methods and packages. The DS2 procedure enables you to submit DS2 language statements from a Base SAS session. In the first maintenance release for SAS 9.4, five new DS2 configuration and run-time loggers have been added to the SAS Logging Facility.
- In the second maintenance release for SAS 9.4, the SAS In-Database Code Accelerator for Hadoop runs the DS2 data program as well as the thread program inside the database. Several new functions have been added. The HTTP package enables you to construct an HTTP client to access web services and a new logger enables logging of HTTP traffic. A connection string parameter is available when instantiating an SQLSTMT package.
- SAS FedSQL is a SAS proprietary implementation of the ANSI SQL:1999 core standard. It provides support for new data types and other ANSI 1999 core compliance features and proprietary extensions. FedSQL provides data access technology that brings a scalable, threaded, high-performance way to access, manage, and share relational data in multiple data sources. FedSQL is a vendor-neutral SQL dialect that accesses data from various data sources without submitting queries in the SQL dialect that is specific to the data source. In addition, a single FedSQL query can target data in several data sources and return a single result table. The FEDSQL procedure enables you to submit FedSQL language statements from a Base SAS session. The first maintenance release for SAS 9.4 adds support for Memory Data Store (MDS), SAP HANA, and SASHDAT data sources.
- In the second maintenance release for SAS 9.4, SAS FedSQL supports Hive, HDMD, and PostgreSQL data sources. Data types can be converted to another data type. You can add DBMS-specific clauses to the end of the CREATE INDEX statement, and you can write a SASHDAT file in compressed format.
- In the third maintenance release of SAS 9.4, FedSQL has added support for HAWQ and Impala distributions of Hadoop, enhanced support for Impala, new data types, and more.
- The first maintenance release for SAS 9.4 enables you to use the SPD Engine to read, write, and update data in a Hadoop cluster through the HDFS. In addition, you can now use the HADOOP procedure to submit configuration properties to the Hadoop server.
- In the second maintenance release for SAS 9.4, performance has been improved for the SPD Engine access to Hadoop. The SAS Hadoop Configuration Guide for Base SAS and SAS/ACCESS is available from the support.sas.com third-party site for Hadoop.
- In the third maintenance release of SAS 9.4, access to data stored in HDFS is enhanced with a new distributed lock manager and therefore easier access to Hadoop clusters using Hadoop configuration files.
Execute the DATA Step in New Supported Environments
- In the first maintenance release for SAS 9.4, the DATA step runs in In-memory in the SAS LASR Analytic Server and inside Hadoop using SAS/ACCESS and the SAS Embedded Process, with limitations. Note that the DATA step processing in Hadoop is preproduction. For more information, see SAS LASR Analytic Server: Reference Guide and SAS In-Database Products: User's Guide.
- In the second maintenance release for SAS 9.4, DATA step process in Hadoop is fully supported.
- SAS can process large amounts of data more efficiently by using new system options to align data and utility files on a page boundary and to set the page size for a SAS library to be the same size as a RAID stripe.
- Optimization processes that determine page size and the default size of a logical record length have been enhanced.
- The Scalable Performance Data Engine (SPD Engine) enables the caching of opened SPD Engine files.
- In the second maintenance release for SAS 9.4, the SPD Engine enables you to specify the size of a block of observations to be used in an I/O operation.
Output Delivery System
- New ODS destinations are EPUB, EPUB3, HTML5, and the ODS destination for PowerPoint.
- In the first maintenance release for SAS 9.4, you can apply cascading style sheets (CSS) to many types of ODS output.
- In the first maintenance release for SAS 9.4, the ODS EPUB3 statement supports HTML5, CSS2, CSS3, SVG, and user-specified audio and video. Any e-book reader that supports EPUB3 supports ODS EPUB3 audio and video.
- The Output Delivery System (ODS) Report Writing Interface (RWI) enables you to create and manipulate predefined ODS objects in a DATA step to create highly customized output.
- The ODS LAYOUT statement enables you to specify the exact location on the page to place a layout and region container.
- There are three new ODS procedures: PROC ODSLIST, PROC ODSTABLE, and PROC ODSTEXT.
- The default style for all Printer family destinations (PS, PDF, PCL) has changed from Styles.Printer to Styles.Pearl.
- The default HTML style for z/OS has changed from Styles.Default to Styles.Htmlblue.
- There are three new ODS Graphics style attributes: DATASKIN, FILLPATTERN=, and KPISKIN.
- There are four new ODS statements: ODS POWERPOINT, ODS EPUB, ODS LAYOUT, and ODS HTML5.
- The second maintenance release for SAS 9.4 has these enhancements:
- The statements ODS EPUB, ODS EPUB3, and ODS ESCAPECHAR support these functions to format data: BOLD, EMPHASIS, ITALIC, PDF, and STRONG.
- The ODS HTML5 statement supports options to show graph styles in the output and to turn off the default CSS style information.
- Several ODS tagsets have been deprecated.
- The Output Delivery System: User's Guide as been dividen into three publications:
- SAS Output Delivery System: User's Guide
- SAS Output Delivery System: Procedure's Guide
- SAS Output Delivery System: Advanced Topics
Enhanced ODS Graphics
The ODS Graphics suite of products includes the Graph Template Language, ODS Graphics procedures, ODS Graphics Designer, and ODS Graphics Editor.
- The ODS Graphics products provide several new plot types, including axis tables that create an axis-aligned row or column of textual data.
- Numerous plot layout, panel, and axis options have been added to control and enhance the output of your graphs. For example, you can now customize the appearance attributes for group values without changing the ODS style template. You can also now specify a color-priority rotation pattern for cycling graph data attributes.
- A new sub-pixel rendering feature provides smoother curves for line charts and more consistent spacing in bar charts.
- The ODS Graphics products provide more options for fitting or splitting data labels, curve labels, and axis tick values when there is not enough room to display the text normally. The data label positioning algorithm was improved to better position the data labels with their data markers. In addition, data markers can now be adjusted when multiple observations have the same response value.
- The ODS Graphics Designer introduces an Auto Charts feature that generates a variety of graphs automatically, based on your data.
- In the first maintenance release for SAS 9.4, ODS Graphics has new and revised plots, charts, and panels.
- In the second maintenance release for SAS 9.4, the ODS Graphics procedures have a new text plot, a new gradient legend, and several new options. The Graph Template Language has a new text plot and several new and revised statement options.
SAS/SECURE is a product within the SAS System, and it is now included with Base SAS. A separate license for SAS/SECURE is no longer required. This change makes strong encryption available in all deployments (except where prohibited by import restrictions).
SAS/SECURE increases data security by using the industry standard Advanced Encryption Standard (AES) with 64-bit salt. See Encryption in SAS 9.4.
The enhanced ENCRYPT= data set option now supports AES encryption. This enables you to use the AES algorithm for stronger encryption.
Data sets in a metadata repository can be secured by placing them in a metadata-bound library. A metadata-bound library is a physical library that is tied to a corresponding metadata object.
The first maintenance release for SAS 9.4 incorporates a new default location for the TLS Certificate Authority for UNIX and z/OS foundation servers, and support for Subject Alternative Names in TLS certificates on UNIX and z/OS clients and servers. Authorized users of metadata-bound libraries can access data without supplying the key-in code.
In the second release for SAS 9.4 on UNIX and z/OS, SAS supports OpenSSL 1.0.1h, which provides support for SSL 3.0 and TLS version 1.0, 1.1, and 1.2. SSL 2.0 is not longer supported.
In the third maintenance release of SAS 9.4, the SAS Deployment Wizard (SDW) automates the process of updating the TLS certificates on UNIX servers. TLS version 1.0. 1.1, and 1.2 are supported.
- The APPEND, COPY, and CONTENTS statements support AES encryption.
- The CONTENTS statement prints the International Components for Unicode (ICU) revision number.
- The DATASETS procedure supports extended attributes.
- The DELETE procedure enables you to delete SAS files from the disk or tape on which it is stored.
- The JSON procedure reads data from a SAS data set and writes the data to an external file in JSON representation.
- The MIGRATE procedure supports extended attributes.
- The OPTIONS procedure supports the new LISTOPTSAVE option which lists the system options that can be saved by using the OPTSAVE procedure or the DMOPTSAVE command.
- The PRINT procedure support the SUMLABEL= option and the GRANDTOTAL_LABEL= option enable you to specify labels for the BY group total and grand total values.
- The PROC PRINTTO PRINT= statement opens the LISTING destination. You no longer need to specify the ODS LISTING statement before you use the PRINTTO procedure.
- In-Database processing for PROC REPORT now supports the Aster, Greenplum, and HADOOP database management systems. Also, NOWINDOWS is now the default windowing environment for PROC REPORT.
- The XSL procedure now provides the PARAMETER statement to pass a parameter value to an XSL style sheet.
- In the first maintenance release for SAS 9.4, changes and enhancements to procedures enable you to determine the encoding of data sets in a transport file, transport data sets with timezone offsets, generate a one-time password from the metadata server to access the SAS Content Server, and support user identity authentication. A link and supporting text were added for Microsoft Excel functions.
- In the first maintenance release for SAS 9.4, an administrator can use the AUTHLIB procedure to require that all data sets in a metadata-bound library be automatically encrypted using the REQUIRE_ENCRYPTION=YES option in the CREATE or MODIFY statements.
- In the second release for SAS 9.4, the REPORT procedure supports several statistical keywords, the CIMPORT procedure can sort imported data sets according to the destination operating system collation sequence, and the FONTREG procedure enables you to specify directories to search for OpenType font files. The CPORT and CIMPORT procedures have been enhanced to support extended attributes.
- In the third maintenance release of SAS 9.4, the following procedures now support the Impala, HAWQ, and SAP HANA database management systems: DS2, FedSQL, MEANS, RANK, REPORT, SORT, SUMMARY, and TABULATE.
- In the third maintenance release of SAS 9.4, SAS data sets can be written to an external file in JSON representation. Now, you can create and parse JSON text using the DS2 JSON package. For more information, see Base SAS Procedures Guide.
- In the first maintenance release for SAS 9.4, if you are running in a client/server environment (for example, SAS Enterprise Guide), the SAS server administrator can create an environment where your SAS client has access to a set of directories and files. All other directories and files would be inaccessible. When SAS is in a locked-down state, access to several SAS language elements is restricted.
- In the second maintenance release for SAS 9.4, certain access methods and their related procedures are disabled, by default, when a SAS session is locked down. These access methods can be re-enabled by a SAS server adminisatrator. When SAS is in a locked down-down state, the SOAP procedure is not available.
New Automatic Macro Variables
- SYSDATASTEPPHASE ensures that the macro is being executed as part of the proper phase of a DATA step.
- SYSHOSTINFOLONG contains the operating environment information that is displayed when the HOSTINFOLONG option is specified.
- SYSPROCESSMODE contains the name of the current SAS session run mode or server type.
- SYSTIMEZONE contains the time zone name based on the current value of the TIMEZONE option.
- SYSTIMEZONEIDENT contains the time zone ID based on the current value of the TIMEZONE option.
- SYSTIMEZONEOFFSET contains the time zone offset based on the current value of the TIMEZONE option.
- You can create custom attributes for SAS data sets by using extended attributes.
- The default value of the EXTENDOBSCOUNTER= data set option has been changed to YES. You can also use the new EXTENDOBSCOUNTER= data set option to specify whether to extend the observation count for SAS data sets.
- The default value of the YEARCUTOFF= system option has been changed to 1926.
- The LIBNAME statement for the XMLV2 engine nickname supports the PREFIXATTRIBUTES= option.
- In the first maintenance release for SAS 9.4, you can enable SAS programs to send messages to and receive messages from an ActiveMQ message broker and any JMS API-compliant message service in the UNIX environment.
- In the first maintenance release for SAS 9.4, details have been added in support of Windows 32-bit architecture
National Language Support (NLS)
- SAS can now process data by using a time zone other than your local time zone. New time zone formats use the ISO 8601 standard to format dates, times, and datetime values by using Universal Coordinate Time (UTC).
- New time zone functions enable you to determine time zones and time zone offsets, and to convert datetime values between SAS and UTC.
- A new SAS datetime constant enables a SAS datetime value to have a time zone offset.
For more new features, see What's New in Base SAS 9.4: Details.
Visit our general product information page on www.sas.com for more information.
Free Online Documentation
- Most recent release for Base SAS
- What's New in SAS 9.4 HTML
- What's New in Base SAS 9.4: Details HTML
- SAS 9.4 Procedures by Name and Product HTML
- SAS 9.4 Language Elements by Name, Product, and Category HTML
- System Requirements and Installation and Configuration Documentation Windows | UNIX | z/OS
- SAS 9.4 DS2 Language Reference, Fifth Edition PDF | HTML
- SAS 9.4 FedSQL Language Reference, Fourth Edition PDF | HTML
- SAS 9.4 Hadoop Configuration Guide for Base SAS and SAS/ACCESS is available at SAS 9.4 Support for Hadoop
- SAS and Hadoop Technology: Deployment Scenarios PDF | HTML
- SAS and Hadoop Technology: Overview PDF | HTML | Buy
- SAS 9.4 SPD Engine: Storing Data in the Hadoop Distributed File System, Third Edition PDF | HTML
Base SAS Programming by Example
- The Little SAS Book: A Primer Book excerpt | Buy
- Step-by-Step Programming with Base SAS 9.4, Second Edition PDF | HTML
- How to Write JSON Output from SAS (7:23)
- How to Automatically Generate XMLMap Files (4:41)
- SAS 9.4 XML Mapper: How to Generate Custom XMLMap Files (9:08)
About the SAS Language
SAS Procedure Guides
- Base SAS 9.4 Procedures Guide, Fourth Edition PDF | HTML
- Base SAS 9.4 Procedures Guide: High-Performance Procedures, Fourth Edition PDF | HTML
- Base SAS 9.4 Procedures Guide: Statistical Procedures, Fourth Edition PDF | HTML
- SAS 9.4 CDISC Procedure: User's Guide PDF | HTML
- SAS 9.4 National Language Support (NLS): Reference Guide, Fourth Edition PDF | HTML
- SAS 9.4 SQL Procedure User's Guide, Second Edition PDF | HTML | Buy
- Example tables for SAS 9.4 SQL Procedure: User's Guide ZIP
DATA Step References
- SAS 9.4 Component Objects: Reference, Second Edition PDF | HTML
- SAS 9.4 Data Set Options: Reference, Third Edition PDF | HTML
- SAS 9.4 Formats and Informats: Reference PDF | HTML
- SAS 9.4 Functions and CALL Routines: Reference, Fourth Edition PDF | HTML | Buy
- SAS 9.4 National Language Support (NLS): Reference Guide, Fourth Edition PDF | HTML
- SAS 9.4 Statements: Reference, Fourth Edition PDF | HTML
- SAS 9.4 System Options: Reference, Fourth Edition PDF | HTML
- Base SAS 9.4 Utilities: Reference PDF | HTML
Operating Environment Specific Information
- SAS 9.4 Companion for UNIX Environments, Fifth Edition PDF | HTML
- Accessibility Features of the Windowing Environment for SAS 9.4 on UNIX HTML
- SAS 9.4 Companion for Windows, Fourth Edition PDF | HTML
- Accessibility Features of the Windowing Environment for SAS 9.4 on Microsoft Windows HTML
- SAS 9.4 Companion for z/OS, Fifth Edition PDF | HTML
- Accessibility Features of the Windowing Environment for SAS 9.4 on z/OS HTML
- SAS 9.4 VSAM Processing for z/OS PDF | HTML
SAS Output Delivery System (ODS) and ODS Graphics
- Base SAS Glossary HTML
- Base SAS 9.4 Guide to Information Maps PDF | HTML
- SAS 9.4 Guide to Metadata-Bound Libraries, Second Edition PDF | HTML
- Moving and Accessing SAS 9.4 Files, Second Edition PDF | HTML
- SAS 9.4 Interface to Application Response Measurement (ARM): Reference PDF | HTML
- SAS 9.4 Language Interfaces to Metadata, Third Edition PDF | HTML
- SAS 9.4 Logging: Configuration and Programming Reference, Second Edition PDF | HTML
- SAS 9.4 Scalable Performance Data Engine: Reference, Third Edition PDF | HTML
- SAS 9.4 SQL Query Window User's Guide PDF | HTML
- SAS Universal Viewer 1.3: User's Guide PDF | HTML
- SAS 9.4 LIBNAME Engine for SAS Federation Server: User's Guide PDF | HTML
- SAS 9.4 XML LIBNAME Engine: User's Guide PDF | HTML
- Step-by-Step Programming with Base SAS 9.4, Second Edition PDF | HTML
- Encryption in SAS 9.4, Fifth Edition PDF | HTML
- The documentation for SAS/SECURE is in Encryption in SAS 9.4.
- The documentation for the SAS/ACCESS Interface to Hadoop is in SAS/ACCESS 9.4 for Relational Databases: Reference. The FILENAME statement (for the Hadoop access method) is in SAS 9.4 Statements: Reference, and the HADOOP procedure is in Base SAS 9.4 Procedures Guide.
- Help for Base SAS is included with the software.
- All online documentation for supported releases of Base SAS [HTML]
- Base SAS titles in online bookstore [HTML]
- Featured Titles
- Cody's Collection of Popular SAS Programming Tasks and How to Tackle Them [Purchase book]
- Learning SAS by Example: A Programmer's Guide [Purchase book]
- The Little SAS Book: A Primer, Fifth Edition [Purchase book]
- PROC DOCUMENT by Example Using SAS [Purchase book]
- PROC TEMPLATE Made Easy [Purchase book]
- SAS Functions by Example, Second Edition [Purchase book]
- SAS for Dummies, Second Edition [Purchase book]
- SAS Server Pages: Generating Dynamic Content [Purchase ebook]
- Data Modeling Considerations in Hadoop and Hive [PDF]
- 2014 SAS Global Forum Papers
- Advanced Mobile Reporting with the ODS EPUB3 Destination [PDF]
- Nitty Gritty Data Set Attributes [PDF]
- Parallel Data Preparation with the DS2 Programming Language [PDF]
- PDF vs. HTML: Can't We All Just Get Along?
- Putting on the Ritz: New Ways to Style Your ODS Graphics to the Max [PDF]
- Reading and Writing ZIP Files with SAS [PDF]
- Sailing Over the ACROSS Hurdle in PROC REPORT [PDF]
- SAS Format Optimization: SAS_PUT or UNPUT (Who's On First?) [PDF]
- Toe to Toe: Comparing ODS LAYOUT and the ODS Report Writing Interface [PDF]
- Using Base SAS to Extend the SAS System [PDF]
- SAS Technical Papers for Base SAS [HTML]
SAS Publishing Representatives are available in the U.S. from 8-5 ET to answer your documentation questions. Contact us at 1-800-727-3228 or e-mail.
- Learning path for programmers/analysts
- Free Software Tutorial: Getting Started with SAS
- Introductory courses
- Courses addressing Base SAS
Curriculum consultants are available in the U.S. from 9-5 EST. Contact us at 1-800-333-7660 or e-mail.
International customers, please contact your country office.
Online Support ResourcesThis page contains online support resources that are specific to this product. Visit the Support page to access various self-help and assisted-help resources or submit a problem through the SAS Technical Support form.
- Dynamically create a single node in the Table of Contents or the bookmark list for each procedure using ODS
- How to modify the root node generated by default when creating output using the XML LIBNAME engine
- Using the HTMLPANEL ODS tagset to put multiple graphs and tables on the same web page
- Download location for the latest version of the XML Mapper
- ODS creates output files for Microsoft Excel that are very large
- English version of SAS on Japanese version of Microsoft Windows shows different NEWFILE= behavior for ODS HTML
- Files created with ODS TAGSETS.EXCELXP might not open automatically in Microsoft Excel as they are generated
- Table of contents text is illegible in a PDF file created on z/OS
- "ERROR: Bridge Failure Calling Unknown" might occur when replaying an ODS Document created with PROC REPORT
- PROC SUMMARY/MEANS running In-Database in Teradata generates "A bug in SAS has been encountered" error
- PROC TABULATE might generate malformed output in ODS destinations
- "Warning: Process ending prematurely for CST0090" issued with SAS Clinical Standards Toolkit
- XMLMap Files related tips
- ODS related tips
- Programming related tips
- What happens when you forget the period on an informat when using formatted input?
- How do I combine my SAS data sets and eliminate duplicate rows at the same time?
- How do I subset data with a WHERE statement?
- How to Automatically Generate XMLMap Files
- Setting System E-mail Options
- Send E-mail with Attachments
- Write an E-mail But Delay Sending