BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
sfffdg
Obsidian | Level 7

Hi 

 

when i tried to write data to an external file with a delimiter,it is writing data to the file but with no delimiter.

The code is as below

 

data _null_;
file " &ctl_file " dlm='|' ;
put "&business_dt_tm" "&business_dt_tm" "&extract_dt_tm" "&extract_dt_tm" "&rec_count" "&sequencenum";
run;

 

What's wrong with the code?

 

Thanks,

Swathi

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

The PUT statement will not write delimiters between string literals.  Either include the delimiter in the strings,

data _null_;
  file "&ctl_file" dsd dlm='|' ;
  put "&business_dt_tm|&business_dt_tm|&extract_dt_tm" 
       "|&extract_dt_tm|&rec_count|&sequencenum"
  ;
run;

or put the strings into a variable and write the variable.

data _null_;
  file "&ctl_file" dsd dlm='|' ;
  length name $100 ;
  do name = "&business_dt_tm" ,"&business_dt_tm", "&extract_dt_tm" 
           ,"&extract_dt_tm", "&rec_count", "&sequencenum"
  ;
    put name @ ;
  end;
  put;
run;

Also don't put spaces at the beginning and end of your filenames. You will have a real hard time referencing those files again!

 

 

View solution in original post

3 REPLIES 3
ChrisNZ
Tourmaline | Level 20

You are writing text, not data, So the text is written as is.

 

data _null_;
file " &ctl_file " dlm='|' ;
put VAR1 VAR2 ;
run;

 

will use the delimiter

Tom
Super User Tom
Super User

The PUT statement will not write delimiters between string literals.  Either include the delimiter in the strings,

data _null_;
  file "&ctl_file" dsd dlm='|' ;
  put "&business_dt_tm|&business_dt_tm|&extract_dt_tm" 
       "|&extract_dt_tm|&rec_count|&sequencenum"
  ;
run;

or put the strings into a variable and write the variable.

data _null_;
  file "&ctl_file" dsd dlm='|' ;
  length name $100 ;
  do name = "&business_dt_tm" ,"&business_dt_tm", "&extract_dt_tm" 
           ,"&extract_dt_tm", "&rec_count", "&sequencenum"
  ;
    put name @ ;
  end;
  put;
run;

Also don't put spaces at the beginning and end of your filenames. You will have a real hard time referencing those files again!

 

 

sfffdg
Obsidian | Level 7

Thank you Sir!!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1147 views
  • 0 likes
  • 3 in conversation