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

Hi

 

I need help and to be sure, an explanation 🙂

 

I would like to get in SAS two inputStreams and I get this error without to understand why and actually I don't find a example with two or more inputStreams.

 

20         libname stream1 xml;
NOTE: Libref STREAM1 was successfully assigned as follows:
      Engine:        XML
      Physical Name: STREAM1
21         libname stream2 xml;
NOTE: Libref STREAM2 was successfully assigned as follows:
      Engine:        XML
      Physical Name: STREAM2
22        
23         data myexceldata1;
24         set stream1.&_WEBIN_SASNAME;
25         run;

NOTE: There were 10 observations read from the data set STREAM1.EXCEL_TABLE.
NOTE: The data set WORK.MYEXCELDATA1 has 10 observations and 4 variables.
NOTE: Compressing data set WORK.MYEXCELDATA1 increased size by 100.00 percent.
      Compressed is 2 pages; un-compressed would require 1 pages.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
                                                                                          Le Système SAS

      cpu time            0.00 seconds
     

26        
27         data myexceldata2;
28         set stream2.&_WEBIN_SASNAME;
29         run;

ERROR: Undetermined I/O failure.

ERROR: Detected during parsing of XMLInput on or near line 1, column 1.

ERROR: The definition of the table "EXCEL_TABLE" is incorrect or corrupted.

NOTE: The DATA step has aborted abnormally.

 

 

 

 

basically i try to :

 

libname stream1 xml;

libname stream2 xml;

 

data myexceldata1;

set stream1.&_WEBIN_SASNAME;

run;

data myexceldata2;

set stream2.&_WEBIN_SASNAME;

run;

proc sort data=myexceldata1;

by clef;

run;

proc sort data=myexceldata2;

by clef;

run;

 

 

Data ensemble;

merge myexceldata1 myexceldata2;

by CLEF;

run;

proc print data=ensemble;

run;

 

So I declare that to try with same range just to check :

 

...

Dim inputStreams As SASRanges
Set inputStreams = New SASRanges
nputStreams.Add "stream1", Worksheets("Feuil1").Range("A1 : D 11")
inputStreams.Add "stream2", Worksheets("Feuil1").Range("A1 : D 11")


Set stp = sas.InsertStoredProcess("/My Folder/Merge de 2 stream", Worksheets("Feuil1").Range("L1"), , , inputStreams)

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Stephane
Quartz | Level 8

got it

 

the second Stream declaration didn't have the "Allow rewinding Stream" marked.

 

That works

View solution in original post

1 REPLY 1
Stephane
Quartz | Level 8

got it

 

the second Stream declaration didn't have the "Allow rewinding Stream" marked.

 

That works

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Discussion stats
  • 1 reply
  • 631 views
  • 0 likes
  • 1 in conversation