Select Your Region
Americas
Europe
Middle East & Africa
Asia Pacific
![]() | ![]() | ![]() | ![]() | ![]() |
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.
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
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 |