SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 38519: Specifying both the DBSLICPARM= and the MULTI_DATASRC_OPT= options might generate incorrect results

DetailsHotfixAboutRate It

Incorrect results might be generated when you specify both the DBSLICEPARM= option (a LIBNAME option and a data set option) and the MULTI_DATASRC_OPT= option (a LIBNAME option). The incorrect results occur because not all of the values are included in queries to certain database management systems (DBMS).

With the option MULTI_DATASRC_OPT=IN_CLAUSE, the engine normally divides the list of values in the SAS data set (or other DBMS table) into groups. It makes this division in order to pass the values to the database as part of an IN clause in a group that is small enough for the database to allow. For example, SAS/ACCESS® Interface to OLEDB breaks the list of values into groups of 255, while SAS/ACCESS® Interface to Oracle breaks the list into groups of 1000.

The DBSLICPARM= option controls the scope of DBMS threaded reads and the number of DBMS connections. Setting the option to (DBSLICPARM=ALL,3) says that three separate queries are to be submitted to the DBMS, thereby distribuing the results set across multiple connections. The way this is done varies according to the specific SAS/ACCESS software product, but often it is accomplished by using the MOD function.

The problem occurs when both DBSLICPARM= and MULTI_DATASRC_OPT= are in effect and when the SAS data set is larger than what is allowed by the access engine in one pass. For access engines that are affected, the first group of values is passed to the database, along with autopartitioning functionality. The process stops on that first pass. Additional passes of the other values never occur. Therefore, the resulting table only contains those matches from the first group of keys.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemBase SASTru64 UNIX9.1 TS1M3 SP4
Solaris for x649.1 TS1M3 SP4
Linux on Itanium9.1 TS1M3 SP4
OpenVMS Alpha9.1 TS1M3 SP4
Linux9.1 TS1M3 SP4
HP-UX IPF9.1 TS1M3 SP4
64-bit Enabled Solaris9.1 TS1M3 SP4
64-bit Enabled HP-UX9.1 TS1M3 SP4
Windows Vista9.1 TS1M3 SP4
64-bit Enabled AIX9.1 TS1M3 SP4
Microsoft Windows XP Professional9.1 TS1M3 SP4
Microsoft Windows Server 2003 Standard Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Enterprise Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Datacenter Edition9.1 TS1M3 SP4
Microsoft Windows NT Workstation9.1 TS1M3 SP4
Microsoft Windows 2000 Professional9.1 TS1M3 SP4
Microsoft Windows 2000 Server9.1 TS1M3 SP4
Microsoft Windows 2000 Datacenter Server9.1 TS1M3 SP4
Microsoft Windows 2000 Advanced Server9.1 TS1M3 SP4
Microsoft Windows XP 64-bit Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Enterprise 64-bit Edition9.1 TS1M3 SP4
Microsoft Windows Server 2003 Datacenter 64-bit Edition9.1 TS1M3 SP4
z/OS9.1 TS1M3 SP4
Microsoft® Windows® for 64-Bit Itanium-based Systems9.1 TS1M3 SP4
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.