Hi,
when I run the code, I get the following result.
1 proc sql; 2 create table process.merge1 as 3 select distinct 4 inpat.psn_name, 5 psn_sector 6 from process.number_of_pat as inpat 7 left join Pat2020.tls206_PERSON_Clean as inco on inpat.psn_name=inco.psn_name 8 where psn_sector in ('COMPANY','COMPANY GOV NON-PROFIT','COMPANY GOV NON-PROFIT 8 ! UNIVERSITY','COMPANY HOSPITAL','COMPANY UNIVERSITY')/* only COMPANY psn_sector will be 8 ! included in the sample*/ 9 order by inpat.psn_name 10 ; NOTE: Data file PROCESS.MERGE1.DATA is in a format that is native to another host, or the file encoding does not match the session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce performance.
so, I check the format of each dataset by the following code,
12 proc contents data=Pat2020.tls206_PERSON_Clean ; run;
13 proc contents data=process.number_of_pat ; run;
and get the result as below.
I also run the code
14 proc options option=encoding;
15 run;
SAS (r) Proprietary Software Release 9.4 TS1M2
ENCODING=UTF-8 Specifies the default character-set encoding for the SAS session.
NOTE: PROCEDURE OPTIONS used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
but in the end, the result is still,
16 proc sql;
17 create table process.merge1 as
18 select distinct
19 inpat.psn_name,
20 psn_sector
21 from process.number_of_pat as inpat
22 left join Pat2020.tls206_PERSON_Clean as inco on inpat.psn_name=inco.psn_name
23 where psn_sector in ('COMPANY','COMPANY GOV NON-PROFIT','COMPANY GOV NON-PROFIT
23 ! UNIVERSITY','COMPANY HOSPITAL','COMPANY UNIVERSITY')/* only COMPANY psn_sector will be
23 ! included in the sample*/
24 order by inpat.psn_name
25 ;
NOTE: Data file PROCESS.MERGE1.DATA is in a format that is native to another host, or the file
encoding does not match the session encoding. Cross Environment Data Access will be used,
which might require additional CPU resources and might reduce performance.
ERROR: User asked for termination.
26 quit;
Do you know why it still happens? and what should I do to figure out this problem?
Could you please give me some advice? Many thanks in advance.
What is your operating system?
Hi, thanks for your reply.
my OS is
Processor Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz 2.90 GHz
Installed RAM 64.0 GB (63.8 GB usable)
System type 64-bit operating system, x64-based processor
Pen and touch No pen or touch input is available for this display Edition Windows 10 Pro
Version 20H2
Installed on 19/07/2021
OS build 19042.1526
Experience Windows Feature Experience Pack 120.2212.4170.0
the following is the information shown on the SAS software
NOTE: SAS (r) Proprietary Software 9.4 (TS1M2 MBCS3170)
NOTE: This session is executing on the X64_8PRO platform.
NOTE: Updated analytical products:
SAS/STAT 13.2
SAS/ETS 13.2
SAS/OR 13.2
SAS/IML 13.2
SAS/QC 13.2
NOTE: Additional host information:
X64_8PRO WIN 6.2.9200 Workstation
To avoid the issue re-create the dataset with your current version.
You can add the COMPRESS option and you should save a lot of space also since you have two insanely long character variables.
Hi Tom, Many thanks for your advice about using the COMPRESS function to save space. could you please also give me some advice about the "in a format that is native to another host, or the file encoding does not match the session encoding". I also run the code in the SAS(Unicode support), but the result is the same.
There is something different about your current SAS session and the one that made that dataset that is causing SAS to have to use what it calls CEDA to convert it on the fly. Usually you can ignore those messages. That should not cause any trouble, but might effect your performance.
Did you make the dataset? Or someone else?
The differences could be Operating System (say Window Desktop vs Window Server), SAS version, Encoding, SAS bitness (32 vs 64).
Your log complains about the target dataset, not the source datasets. That is weird.
Run
libname process list;
and look at the log. Consider contacting SAS technical support.
Thanks for all your advice.
in the end, I delete the previous dataset 'process.merge1' and then I can create a new 'process.merge1' dataset without problem.
I hope this is helpful for others facing a similar problem.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.