The PRXCHANGE() function might return incorrect results in SAS Scalable Performance Data Server.
The following code is an example that can produce incorrect results:
%let SPDSWDEB=YES;
proc sql;
create table work.P_RISK as
select PRR_PID_PRODUCT_ID from SPDWRKDI.VLS_PRODUCT_RISK
where prxchange("s/[^0-9]//",-1,
VLS_PRODUCT_RISK.PRR_CDE_RISK_TYPE) in ('160', '161','180',
'200','241','242','243','244','245','246','248','249','250',
'251','390','460');
When you submit this code, the following, incorrect results are generated:
whinit: WHERE PRXCHANGE('s/[^0-9]//', -1, PRR_CDE_RISK_TYPE) in ('160', '161','180',
'200', '241', '242', '243', '244', '245','246', '248', '249',
'250', '251', '390', '460')
whinit: wh-tree presented
/-FUNC = [PRXCHANGE()]
/-FLST---|
| |--LITC = ['s/[^0-9]//']
| |--LITN = [-1]
| \-NAME = [PRR_CDE_RISK_TYPE]
--IN-----|
| /-LITC = ['160']
\-SET----|
|--LITC = ['161']
|--LITC = ['180']
|--LITC = ['200']
|--LITC = ['241']
|--LITC = ['242']
|--LITC = ['243']
|--LITC = ['244']
|--LITC = ['245']
|--LITC = ['246']
|--LITC = ['248']
|--LITC = ['249']
|--LITC = ['250']
|--LITC = ['251']
|--LITC = ['390']
\-LITC = ['460']
whinit returns: ALL EVAL2
NOTE: Table WORK.P_RISK created, with 0 rows and 1 columns.
Click the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SPDS | Scalable Performance Data Server | Microsoft® Windows® for x64 | 5.1 HF3 | 5.1 HF4 | | |
Microsoft Windows 8.1 Enterprise x64 | 5.1 HF3 | 5.1 HF4 | | |
Microsoft Windows Server 2008 R2 | 5.1 HF3 | 5.1 HF4 | | |
Windows 7 Enterprise x64 | 5.1 HF3 | 5.1 HF4 | | |
64-bit Enabled AIX | 5.1 HF3 | 5.1 HF4 | | |
64-bit Enabled Solaris | 5.1 HF3 | 5.1 HF4 | | |
HP-UX IPF | 5.1 HF3 | 5.1 HF4 | | |
Linux for x64 | 5.1 HF3 | 5.1 HF4 | | |
Solaris for x64 | 5.1 HF3 | 5.1 HF4 | | |
*
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.