What's New

What's New in SAS 9.2 Base Procedures


Overview

The following Base SAS procedures are new:

The following Base SAS procedures have been enhanced:


New Base SAS Procedures


The CALLRFC Procedure

The CALLRFC procedure enables you to invoke Remote Function Call (RFC) or RFC-compatible functions on an SAP System from a SAS program. You must license and configure SAS/ACCESS Interface to R/3 to use the CALLRFC procedure.


The FCMP Procedure

The FCMP procedure is new for 9.2. The SAS Function Compiler Procedure (FCMP) enables you to create, test, and store SAS functions and subroutines before you use them in other SAS procedures. PROC FCMP accepts slight variations of DATA step statements, and most features of the SAS programming language can be used in functions and subroutines that are processed by PROC FCMP.


The JAVAINFO Procedure

The JAVAINFO procedure conveys diagnostic information to the user about the Java environment that SAS is using. The diagnostic information can be used to confirm that the SAS Java environment has been configured correctly, and can be helpful when reporting problems to SAS technical support. Also, PROC JAVAINFO is often used to verify that the SAS Java environment is working correctly because PROC JAVAINFO uses Java to report its diagnostics.


The PROTO Procedure

The PROTO procedure enables you to register, in batch mode, external functions that are written in the C or C++ programming languages. You can use these functions in SAS as well as in C-language structures and types. After the C-language functions are registered in PROC PROTO, they can be called from any SAS function or subroutine that is declared in the FCMP procedure. They can also be called from any SAS function, subroutine, or method block that is declared in the COMPILE procedure.


The SCAPROC Procedure

The SCAPROC procedure enables you to specify a filename or fileref that will contain the output of the SAS Code Analyzer and to write the output to the file. The SAS Code Analyzer captures information about the job step, input and output information such as file dependencies, and information about macro symbol usage from a running SAS job. The SCAPROC procedure also can generate a grid-enabled job that can simultaneously run independent pieces of a SAS job.

The CONCATMEM comment has been added to the SCAPROC procedure output for the third maintenance release for SAS 9.2. The CONCATMEM comment specifies the name of a concatenated library that contains a specified libref.


The SOAP Procedure

The SOAP procedure reads XML input from a file that has a fileref and writes XML output to another file that has a fileref. The envelope and headings are part of the content of the fileref.


The HTTP Procedure

The HTTP procedure invokes a Web service that issues requests.


The XSL Procedure

The XSL procedure is new for the third maintenance release for SAS 9.2. The XSL procedure transforms an XML document into another format, such as HTML, text, or another XML document type. The procedure reads an input XML document, transforms it by using an XSL style sheet, and then writes an output file.


Enhanced Base SAS Procedures


The APPEND Procedure

The NOWARN option has been added to the APPEND procedure. The NOWARN option suppresses the warning message when it is used with the FORCE option to concatenate two data sets with different variables.


The CIMPORT Procedure

The following enhancement has been made to the CIMPORT procedure:


The CONTENTS Procedure

The WHERE option of the CONTENTS procedure has been restricted. You cannot use the WHERE option to affect the output because PROC CONTENTS does not process any observations.


The COPY Procedure

The PROC COPY option of the COPY procedure ignores concatenations with catalogs. Use PROC CATALOG COPY to copy concatenated catalogs.


The CPORT Procedure

The documentation about the READ= data set option (used in the DATA statement of PROC CPORT) was enhanced to explain when a read-only password might be required. You can create a transport file for a read-only data set only when you also specify the data set's password using the READ= option in PROC CPORT. Clear-text and encoded passwords are supported.


The CORR Procedure

The new ID statement for the CORR procedure specifies one or more additional tip variables to identify observations in scatter plots and scatter plot matrices.


The DATASETS Procedure

The following options are new or enhanced in the DATASETS procedure:


The FCMP Procedure

In the third maintenance release for SAS 9.2, the following statements have been added to the FCMP procedure:

LISTFUNC | LISTSUBR

causes the source code for a function to be written to the SAS listing.

DELETEFUNC | DELETESUBR

causes a specified function to be deleted from the library that is specified in the OUTLIB option.

In the third maintenance release for SAS 9.2, the following option has been added:

LISTFUNCS

enables you to list the prototypes for all visible FCMP procedure functions in the SAS listing.


The FREQ Procedure

The FREQ procedure can now produce frequency plots, cumulative frequency plots, deviation plots, odds ratio plots, and kappa plots by using ODS Graphics. The crosstabulation table now has an ODS template that you can customize using the TEMPLATE procedure. Equivalence and noninferiority tests are now available for the binomial proportion and the proportion difference. New confidence limits for the binomial proportion include Agresti-Coull, Jeffreys, and Wilson (score) confidence limits. The RISKDIFF option in the EXACT statement provides unconditional exact confidence limits for the proportion (risk) difference. The EQOR option in the EXACT statement provides Zelen's exact test for equal odds ratios.

In the third maintenance release for SAS 9.2, the FREQ procedure has been enhanced to run inside the Teradata Enterprise Data Warehouse (EDW), DB2 under UNIX, and Oracle. Using conventional processing, a SAS procedure, by means of the SAS/ACCESS engine, receives all the rows of the table from the database. All processing is done by the procedure. Large tables mean that a significant amount of data must be transferred. Using the new in-database technology, the procedures that are enabled for processing inside the database generate more sophisticated queries that allow the aggregations and analytics to be run inside the database. For most in-database procedures, a much smaller result set is returned for the remaining analysis that is required to produce the final output. As a result of using the in-database procedures, more work is done inside the database and less data movement can occur. Using in-database procedures can result in significant performance improvements.


The MEANS Procedure

The following enhancements have been made to the MEANS procedure:

In the third maintenance release for SAS 9.2, the MEANS procedure has been enhanced to run inside the Teradata Enterprise Data Warehouse (EDW), DB2 under UNIX, and Oracle. Using conventional processing, a SAS procedure, by means of the SAS/ACCESS engine, receives all the rows of the table from the database. All processing is done by the procedure. Large tables mean that a significant amount of data must be transferred. Using the new in-database technology, the procedures that are enabled for processing inside the database generate more sophisticated queries that allow the aggregations and analytics to be run inside the database. For most in-database procedures, a much smaller result set is returned for the remaining analysis that is required to produce the final output. As a result of using the in-database procedures, more work is done inside the database and less data movement can occur. Using in-database procedures can result in significant performance improvements.


The MIGRATE Procedure

The MIGRATE procedure now supports more cross-environment migrations. You can migrate a SAS 8.2 data library from almost every SAS 8.2 operating environment to any SAS 9.2 operating environment. Most SAS 6 operating environments are also supported, but not for cross-environment migration.


The OPTIONS Procedure

The following enhancements have been made to the OPTIONS procedure:


The PRINT Procedure

The following new options have been added to the PRINT procedure:

SUMLABEL

enables you to display the label of the BY variable on the summary line.

BLANKLINE

enables you to insert a blank line after every n observations.


The PWENCODE Procedure

The following enhancements have been made to the PWENCODE procedure :


The RANK Procedure

The TIES= option of the RANK procedure has a new value, DENSE, which computes scores and ranks by treating tied values as a single-order statistic.

In the third maintenance release for SAS 9.2, the RANK procedure has been enhanced to run inside the Teradata Enterprise Data Warehouse (EDW), DB2 under UNIX, and Oracle. Using conventional processing, a SAS procedure, by means of the SAS/ACCESS engine, receives all the rows of the table from the database. All processing is done by the procedure. Large tables mean that a significant amount of data must be transferred. Using the new in-database technology, the procedures that are enabled for processing inside the database generate more sophisticated queries that allow the aggregations and analytics to be run inside the database. For most in-database procedures, a much smaller result set is returned for the remaining analysis that is required to produce the final output. As a result of using the in-database procedures, more work is done inside the database and less data movement can occur. Using in-database procedures can result in significant performance improvements.


The REPORT Procedure

The following enhancements have been made to the REPORT procedure:


The SOAP Procedure

In the third maintenance release for SAS 9.2, the following options have been added to the SOAP procedure:

ENVFILE

specifies the location of the SAS environments file.

ENVIRONMENT

specifies to use the environment that is defined in the SAS environments file.

SERVICE

specifies the SAS Web service to use.

In the third maintenance release for SAS 9.2, you can call SAS Web services by using one of two methods. The first method requires that you know the URL of the Service Registry Service and the URL of the endpoint of the service you are calling. You must set the URL of the Service Registry Service on the SRSURL option. The URL option indicates the endpoint of the service that you are calling.

The second method that is used to call SAS Web services uses the SAS environments file to specify the endpoint of the service you are calling. Using this method, you can indicate the location of the SAS environments file in one of two ways:


The SORT Procedure

The following options and statements are new or enhanced in the SORT procedure:

In the third maintenance release for SAS 9.2, the SORT procedure has been enhanced to run inside the Teradata Enterprise Data Warehouse (EDW), DB2 under UNIX, and Oracle. Using conventional processing, a SAS procedure, by means of the SAS/ACCESS engine, receives all the rows of the table from the database. All processing is done by the procedure. Large tables mean that a significant amount of data must be transferred. Using the new in-database technology, the procedures that are enabled for processing inside the database generate more sophisticated queries that allow the aggregations and analytics to be run inside the database. For most in-database procedures, a much smaller result set is returned for the remaining analysis that is required to produce the final output. As a result of using the in-database procedures, more work is done inside the database and less data movement can occur. Using in-database procedures can result in significant performance improvements.


The SUMMARY Procedure

The following enhancements have been made to the SUMMARY procedure:

In the third maintenance release after SAS 9.2, the SUMMARY procedure has been enhanced to run inside the Teradata Enterprise Data Warehouse (EDW), DB2 under UNIX, and Oracle. Using conventional processing, a SAS procedure, by means of the SAS/ACCESS engine, receives all the rows of the table from the database. All processing is done by the procedure. Large tables mean that a significant amount of data must be transferred. Using the new in-database technology, the procedures that are enabled for processing inside the database generate more sophisticated queries that allow the aggregations and analytics to be run inside the database. For most in-database procedures, a much smaller result set is returned for the remaining analysis that is required to produce the final output. As a result of using the in-database procedures, more work is done inside the database and less data movement can occur. Using in-database procedures can result in significant performance improvements.


The SQL Procedure

The following enhancements have been made to the SQL procedure:

The following new options have been added to the PROC SQL statement:

CONSTDATETIME | NOCONSTDATETIME

specifies whether the SQL procedure replaces references to the DATE, TIME, DATETIME, and TODAY functions in a query with their equivalent constant values before the query executes.

Note:   The CONSTDATETIME option provides the same functionality as the new SQLCONSTDATETIME system option.  [cautionend]

EXITCODE

specifies whether PROC SQL clears an error code for any SQL statement.

IPASSTHRU | NOIPASSTHRU

specifies whether implicit pass-through is enabled or disabled.

REDUCEPUT

specifies the engine type that a query uses for which optimization is performed by replacing a PUT function in a query with a logically equivalent expression.

Note:   The REDUCEPUT option provides the same functionality as the new SQLREDUCEPUT system option.  [cautionend]

REMERGE | NOREMERGE

specifies that the SQL procedure does not process queries that use remerging of data.

Note:   The REMERGE option provides the same functionality as the new SQLREMERGE system option.  [cautionend]

The following new global system options affect SQL processing and performance:

DBIDIRECTEXEC (SAS/ACCESS)

controls SQL optimization for SAS/ACCESS engines.

SQLCONSTANTDATETIME

specifies whether the SQL procedure replaces references to the DATE, TIME, DATETIME, and TODAY functions in a query with their equivalent constant values before the query executes.

SQLMAPPUTTO (SAS/ACCESS)

for SAS 9.2 Phase 2 and later, specifies whether the PUT function in the SQL procedure is processed by SAS or by the SAS_PUT() function inside the Teradata database.

SQLREDUCEPUT

for the SQL procedure, specifies the engine type that a query uses for which optimization is performed by replacing a PUT function in a query with a logically equivalent expression.

SQLREDUCEPUTOBS

for the SQL procedure when the SQLREDUCEPUT= system option is set to NONE, specifies the minimum number of observations that must be in a table in order for PROC SQL to consider optimizing the PUT function in a query.

SQLREDUCEPUTVALUES

for the SQL procedure when the SQLREDUCEPUT= system option is set to NONE, specifies the maximum number of SAS format values that can exist in a PUT function expression in order for PROC SQL to consider optimizing the PUT function in a query.

SQLREMERGE

specifies whether the SQL procedure can process queries that use remerging of data.

SQLUNDOPOLICY

specifies whether the SQL procedure keeps or discards updated data if errors occur while the data is being updated.


The TABULATE Procedure

The following enhancements have been made to the TABULATE procedure:


The UNIVARIATE Procedure

The UNIVARIATE procedure now produces graphs that conform to ODS styles, so that creating consistent output is easier. Also, you now have two methods for producing graphs. With traditional graphics, you can control every detail of a graph through familiar procedure syntax and the GOPTION and SYMBOL statements. With ODS Graphics (experimental for the UNIVARIATE procedure in SAS 9.2), you can obtain the highest quality output with minimal syntax. You also now have full compatibility with graphics that are produced by the SAS/STAT and SAS/ETS procedures.

The new UNIVARIATE procedure CDFPLOT statement plots the observed cumulative distribution function (cdf) of a variable and enables you to superimpose a fitted theoretical distribution on the graph. The new PPPLOT statement creates a probability-probability plot (also referred to as a P-P plot or percent plot). This statement compares the empirical cumulative distribution function (ecdf) of a variable with a specified theoretical cumulative distribution function. The beta, exponential, gamma, lognormal, normal, and Weibull distributions are available in both statements.


Documentation Enhancements

The following Base SAS Procedures have had part or all of their documentation relocated to other SAS documents.


The CV2VIEW Procedure

Documentation for the CV2VIEW procedure is now in the SAS/ACCESS for Relational Databases: Reference.


The DBCSTAB Procedure

Documentation for the DBCSTAB procedure is now in the SAS National Language Support (NLS): Reference Guide.


The EXPORT Procedure

The Base SAS Procedures Guide contains only overview and common syntax information for the EXPORT procedure. Information that is specific to PC Files is now in the SAS/ACCESS Interface to PC Files: Reference.


The IMPORT Procedure

The Base SAS Procedures Guide contains only overview and common syntax information for the IMPORT procedure. Information that is specific to PC Files is now in the SAS/ACCESS Interface to PC Files: Reference.


The TRANTAB Procedure

Documentation for the TRANTAB procedure is now in the SAS National Language Support (NLS): Reference Guide.