Hello
I run this code and get this error
ERROR: An exception has been encountered.
Please contact technical support and provide them with the following traceback information:
2 The SAS System 12:28 Saturday, August 30, 2025
The SAS task name is [SQL (2) ]
Segmentation Violation
Traceback of the Exception:
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(+0x15cfde) [0x55fc22883fde]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(+0x4cb7b) [0x55fc22773b7b]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/tkmk.so(bkt_signal_handler+0x144) [0x7fee8516a404]
/lib64/libpthread.so.0(+0xf630) [0x7fee863db630]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(__intel_ssse3_rep_memcpy+0x27a0) [0x7fee398afa30]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqxcseq+0x28e) [0x7fee39893b6e]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x1b088) [0x7fee3986d088]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x208db) [0x7fee398728db]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x1f9c0) [0x7fee398719c0]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x21410) [0x7fee39873410]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqxexec+0x56d) [0x7fee3989289d]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x39681) [0x7fee3988b681]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqlloop+0x405) [0x7fee3988ad35]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassql(sassql+0x27a) [0x7fee22ab531a]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(vvtentr+0x13d) [0x55fc2277371d]
/lib64/libpthread.so.0(+0x7ea5) [0x7fee863d3ea5]
/lib64/libc.so.6(clone+0x6d) [0x7fee859bfb0d]
proc sql;
create table t_Ind4_b as
select a.*,
b.UUID,
b.productID,
b.APPLICATIONDATE,
b.LoanRequestedAmount,
b.Degem as offer_Degem,
b.LoanMaxAmount as Offer_LoanMaxAmount,
b.LoanMaxDeductAmount as offer_LoanMaxDeductAmount,
b.MinNumPayments as offer_MinNumPayments,
b.MaxNumPayments as offer_MaxNumPayments,
b.PrimeSpread as offer_PrimeSpread
from t_Ind4_a(Where=(Approval_Reference_Ind = 1 and Agreement_Account_Id=665845890)) as a
left join DWH_OffersDeclinesDaily_b as b
on a.Approval_Reference_Nbr=b.ConsentId
and a.Numerator_DWH=b.First_Branch_Cust_IP
and 0<=a.Haamada_date-b.APPLICATIONDATE<=1
and a.degem=b.Degem
and a.Planned_Pmnts_Nbr<=b.MaxNumPayments
and a.Planned_Pmnts_Nbr>=b.MinNumPayments
and round(a.Mirvach_From_prime,0.01)-round(b.PrimeSpread,0.01)=0
;
quit;
1 The SAS System 12:28 Saturday, August 30, 2025
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='f_PART7_Engine_New.sas';
4 %LET _CLIENTPROCESSFLOWNAME='Standalone Not In Project';
5 %LET _CLIENTPROJECTPATH='';
6 %LET _CLIENTPROJECTPATHHOST='';
7 %LET _CLIENTPROJECTNAME='';
8 %LET _SASPROGRAMFILE='M:\a.ריכוז תוכניות\CS\פאנל העמדות_מעודכן-יולי 2025\f_PART7_Engine_New.sas';
9 %LET _SASPROGRAMFILEHOST='HKSU102561A79';
10
11 ODS _ALL_ CLOSE;
12 OPTIONS DEV=SVG;
13 GOPTIONS XPIXELS=0 YPIXELS=0;
14 %macro HTML5AccessibleGraphSupported;
15 %if %_SAS_VERCOMP_FV(9,4,4, 0,0,0) >= 0 %then ACCESSIBLE_GRAPH;
16 %mend;
17 FILENAME EGHTML TEMP;
18 ODS HTML5(ID=EGHTML) FILE=EGHTML
19 OPTIONS(BITMAP_MODE='INLINE')
20 %HTML5AccessibleGraphSupported
NOTE: The ACCESSIBLE_GRAPH option is pre-production for this release.
21 ENCODING='utf-8'
22 STYLE=HTMLBlue
23 NOGTITLE
24 NOGFOOTNOTE
25 GPATH=&sasworklocation
26 ;
NOTE: Writing HTML5(EGHTML) Body file: EGHTML
27
28 proc sql;
29 create table t_Ind4_b as
30 select a.*,
31 b.UUID,
32 b.productID,
33 b.APPLICATIONDATE,
34 b.LoanRequestedAmount,
35 b.Degem as offer_Degem,
36 b.LoanMaxAmount as Offer_LoanMaxAmount,
37 b.LoanMaxDeductAmount as offer_LoanMaxDeductAmount,
38 b.MinNumPayments as offer_MinNumPayments,
39 b.MaxNumPayments as offer_MaxNumPayments,
40 b.PrimeSpread as offer_PrimeSpread
41 from t_Ind4_a(Where=(Approval_Reference_Ind = 1 and Agreement_Account_Id=665845890)) as a
42 left join DWH_OffersDeclinesDaily_b as b
43 on a.Approval_Reference_Nbr=b.ConsentId
44 and a.Numerator_DWH=b.First_Branch_Cust_IP
45 and 0<=a.Haamada_date-b.APPLICATIONDATE<=1
46 and a.degem=b.Degem
47 and a.Planned_Pmnts_Nbr<=b.MaxNumPayments
48 and a.Planned_Pmnts_Nbr>=b.MinNumPayments
49 and round(a.Mirvach_From_prime,0.01)-round(b.PrimeSpread,0.01)=0
50 ;
NOTE: SAS threaded sort was used.
NOTE: Invalid (or missing) arguments to the ROUND function have caused the function to return a missing value.
ERROR: An exception has been encountered.
Please contact technical support and provide them with the following traceback information:
2 The SAS System 12:28 Saturday, August 30, 2025
The SAS task name is [SQL (2) ]
Segmentation Violation
Traceback of the Exception:
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(+0x15cfde) [0x55fc22883fde]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(+0x4cb7b) [0x55fc22773b7b]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/tkmk.so(bkt_signal_handler+0x144) [0x7fee8516a404]
/lib64/libpthread.so.0(+0xf630) [0x7fee863db630]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(__intel_ssse3_rep_memcpy+0x27a0) [0x7fee398afa30]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqxcseq+0x28e) [0x7fee39893b6e]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x1b088) [0x7fee3986d088]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x208db) [0x7fee398728db]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x1f9c0) [0x7fee398719c0]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x21410) [0x7fee39873410]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqxexec+0x56d) [0x7fee3989289d]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(+0x39681) [0x7fee3988b681]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassqx(sqlloop+0x405) [0x7fee3988ad35]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sassql(sassql+0x27a) [0x7fee22ab531a]
/usr/local/SAS/SASHome/SASFoundation/9.4/sasexe/sas(vvtentr+0x13d) [0x55fc2277371d]
/lib64/libpthread.so.0(+0x7ea5) [0x7fee863d3ea5]
/lib64/libc.so.6(clone+0x6d) [0x7fee859bfb0d]
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set WORK.T_IND4_A.
WHERE (Approval_Reference_Ind=1) and (Agreement_Account_Id=665845890);
NOTE: There were 9362446 observations read from the data set WORK.DWH_OFFERSDECLINESDAILY_B.
WARNING: The data set WORK.T_IND4_B may be incomplete. When this step was stopped there were 0 observations and 32 variables.
WARNING: Data set WORK.T_IND4_B was not replaced because this step was stopped.
NOTE: PROCEDURE SQL used (Total process time):
real time 16.22 seconds
user cpu time 15.42 seconds
system cpu time 8.82 seconds
memory 3962487.20k
OS Memory 3990500.00k
Timestamp 09/01/2025 10:20:20 AM
Step Count 1399 Switch Count 8
Page Faults 0
Page Reclaims 2167726
Page Swaps 0
Voluntary Context Switches 131922
Involuntary Context Switches 411
Block Input Operations 0
Block Output Operations 0
51 quit;
52
53 %LET _CLIENTTASKLABEL=;
54 %LET _CLIENTPROCESSFLOWNAME=;
55 %LET _CLIENTPROJECTPATH=;
56 %LET _CLIENTPROJECTPATHHOST=;
57 %LET _CLIENTPROJECTNAME=;
58 %LET _SASPROGRAMFILE=;
59 %LET _SASPROGRAMFILEHOST=;
60
61 ;*';*";*/;quit;run;
62 ODS _ALL_ CLOSE;
63
3 The SAS System 12:28 Saturday, August 30, 2025
64
65 QUIT; RUN;
66
There must be an error hidden in your code.
According to your LOG:
NOTE: Invalid (or missing) arguments to the ROUND function have caused the function to return a missing value.
I guess you should change this
round(a.Mirvach_From_prime,0.01)-round(b.PrimeSpread,0.01)=0
into
round(a.Mirvach_From_prime,0.01) = round(b.PrimeSpread,0.01)
Because yours is unbalance expression that would lead to an error in general.
There must be an error hidden in your code.
According to your LOG:
NOTE: Invalid (or missing) arguments to the ROUND function have caused the function to return a missing value.
I guess you should change this
round(a.Mirvach_From_prime,0.01)-round(b.PrimeSpread,0.01)=0
into
round(a.Mirvach_From_prime,0.01) = round(b.PrimeSpread,0.01)
Because yours is unbalance expression that would lead to an error in general.
I will give you an example:
1 proc sql;
2 select *
3 from sashelp.class as a,sashelp.class as b
4 where round(a.weight,0.01)-round(b.weight,0.01)=0;
NOTE: Writing HTML Body file: sashtml.htm
NOTE: No rows were selected.
5 quit;
NOTE: PROCEDURE SQL used (Total process time):
real time 0.83 seconds
cpu time 0.35 seconds
If using your code, you would get nothing.
6 proc sql;
7 select *
8 from sashelp.class as a,sashelp.class as b
9 where round(a.weight,0.01)=round(b.weight,0.01);
10 quit;
NOTE: PROCEDURE SQL used (Total process time):
real time 0.03 seconds
cpu time 0.01 seconds
If using my code , you would get 17 obs.
Thank you, @Ksharp, for pointing this out.
Now I am puzzled. Is this a known bug in PROC SQL? Is it limited to the ROUND function? I haven't found a related problem note (such as https://support.sas.com/kb/69/271.html).
Here's a boiled down example using two very simple, identical datasets A and B:
data a b;
input x;
cards;
1
2
;
proc sql;
create table c1 as
select .
from a, b
where round(a.x)-round(b.x)=0;
create table c2 as
select .
from a, b
where round(a.x,1)-round(b.x,1)=0;
create table c3 as
select a.*
from a, b
where round(a.x,1)=round(b.x,1);
create table c4 as
select a.*
from a, b
where round(a.x,1)-round(b.x,1)=0;
quit;
Log of the PROC SQL step from Windows SAS 9.4M5:
8 proc sql;
9 create table c1 as
10 select .
11 from a, b
12 where round(a.x)-round(b.x)=0;
NOTE: Table WORK.C1 created, with 2 rows and 1 columns.
13 create table c2 as
14 select .
15 from a, b
16 where round(a.x,1)-round(b.x,1)=0;
NOTE: Table WORK.C2 created, with 0 rows and 1 columns.
17 create table c3 as
18 select a.*
19 from a, b
20 where round(a.x,1)=round(b.x,1);
NOTE: Table WORK.C3 created, with 2 rows and 1 columns.
21 create table c4 as
22 select a.*
23 from a, b
24 where round(a.x,1)-round(b.x,1)=0;
ERROR: An exception has been encountered.
Please contact technical support and provide them with the following traceback information:
The SAS task name is [SQL]
ERROR: Read Access Violation SQL
Exception occurred at (0A745C66)
Task Traceback
Address Frame (DBGHELP API Version 4.0 rev 5)
000000000B1E1E8C 000000000B3BF148 0001:0000000000000E8C tkeavl.dll
000000000AE391D4 000000000B3BF258 sassqx:tkvercn1+0x38194
000000000AE0F150 000000000B3BF420 sassqx:tkvercn1+0xE110
000000000AE18EAA 000000000B3BF550 sassqx:tkvercn1+0x17E6A
000000000AE17EA5 000000000B3BF7F0 sassqx:tkvercn1+0x16E65
000000000AE19B09 000000000B3BF850 sassqx:tkvercn1+0x18AC9
000000000AE3D429 000000000B3BF8B0 sassqx:tkvercn1+0x3C3E9
000000000AE356F5 000000000B3BF9D0 sassqx:tkvercn1+0x346B5
000000000AE34B6E 000000000B3BFB40 sassqx:tkvercn1+0x33B2E
000000000ADE13B2 000000000B3BFB48 sassql:tkvercn1+0x372
00000000038CA066 000000000B3BFBE8 sashost:Main+0x11BA6
00000000038D011D 000000000B3BFF50 sashost:Main+0x17C5D
00000000777E556D 000000000B3BFF58 kernel32:BaseThreadInitThunk+0xD
000000007794372D 000000000B3BFF88 ntdll:RtlUserThreadStart+0x1D
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set WORK.A.
NOTE: There were 2 observations read from the data set WORK.B.
WARNING: The data set WORK.C4 may be incomplete. When this step was stopped there were 0 observations and 1 variables.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.06 seconds
cpu time 0.06 seconds
25 quit;
Specifying 1 as the rounding unit in the second argument of the ROUND function should be redundant. However, in the WHERE condition of the form "difference = 0" it produces an incorrect result in table C2 (0 rows instead of 2) and a Read Access Violation error while creating table C4.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.