![]() | ![]() | ![]() |
Error and warning messages might write to the SAS log after you run migrate_template.sas, a validation program supplied by SAS, while you are migrating from a 32-bit Microsoft Windows system to a 64-bit Microsoft Windows system.
The errors and warnings in your SAS log might be similar as the following:
SYMBOLGEN: Macro variable LIB resolves to LIB1
MPRINT(ODSINDEX): data ods.tempLIB1_idx;
SYMBOLGEN: Macro variable LONGESTN resolves to
391: LINE and COLUMN cannot be determined.
ERROR 391-185: Expecting a variable length specification.
SYMBOLGEN: Macro variable LONGESTR resolves to
200: LINE and COLUMN cannot be determined.
ERROR 200-322: The symbol is not recognized and will be ignored.
76: LINE and COLUMN cannot be determined.
ERROR 76-322: Syntax error, statement will be ignored.
MPRINT(ODSINDEX): length name $. type $ recreate $ inactive.12. $3.;
SYMBOLGEN: Macro variable MYSET resolves to
MPRINT(ODSINDEX): set ;
MPRINT(ODSINDEX): run;
WARNING: The data set ODS.TEMPLIB1_IDX may be incomplete. When this step
was stopped there were 0 observations and 2 variables.
ERROR 391-185: Expecting a variable length specification.
200: LINE and COLUMN cannot be determined.
ERROR 200-322: The symbol is not recognized and will be ignored.
76: LINE and COLUMN cannot be determined.
ERROR 76-322: Syntax error, statement will be ignored.
MPRINT(ODSINDEX): data ods.LIB1_idx(rename=(myrec=recreate myname=name));
WARNING: Apparent symbolic reference MYLONGESTR not resolved.
WARNING: Apparent symbolic reference MYLONGESTN not resolved.
MPRINT(ODSINDEX): length myrec $&mylongestr.. myname $&mylongestn.. ;
SYMBOLGEN: Macro variable LIB resolves to LIB1
MPRINT(ODSINDEX): set ods.LIB1_idx;
MPRINT(ODSINDEX): myrec=recreate;
MPRINT(ODSINDEX): myname=name;
MPRINT(ODSINDEX): drop recreate name;
MPRINT(ODSINDEX): run;
WARNING: The data set ODS.LIB1_IDX may be incomplete. When this step was
stopped there were 0 observations and 4 variables.
WARNING: Data set ODS.LIB1_IDX was not replaced because this step was stopped.
WARNING: The variable membr in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable name in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable type in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable recreate in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable inactive in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable type in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable recreate in the DROP, KEEP, or RENAME list has never been
referenced.
WARNING: The variable inactive in the DROP, KEEP, or RENAME list has never been
referenced.
SYMBOLGEN: Macro variable LIB resolves to LIB1
MPRINT(ODSINDEX): proc sort data=ods.LIB1_idx;
ERROR: Variable MEMBR not found.
MPRINT(ODSINDEX): by membr name;
ERROR: Variable NAME not found.
ERROR 391-185: Expecting a variable length specification.
SYMBOLGEN: Macro variable LONGESTR resolves to
200: LINE and COLUMN cannot be determined.
ERROR 200-322: The symbol is not recognized and will be ignored.
76: LINE and COLUMN cannot be determined.
ERROR 76-322: Syntax error, statement will be ignored.
MPRINT(ODSINDEX): length name $. type $ recreate $ inactive.12. $3.;
SYMBOLGEN: Macro variable MYSET resolves to tempdat1
MPRINT(ODSINDEX): set tempdat1;
MPRINT(ODSINDEX): run;
WARNING: The data set ODS.TEMPLIB2_IDX may be incomplete. When this step was
stopped there were 0 observations and 5 variables.
ERROR 391-185: Expecting a variable length specification.
200: LINE and COLUMN cannot be determined.
ERROR 200-322: The symbol is not recognized and will be ignored.
76: LINE and COLUMN cannot be determined.
ERROR 76-322: Syntax error, statement will be ignored.
MPRINT(ODSINDEX): data ods.LIB2_idx(rename=(myrec=recreate myname=name));
WARNING: Apparent symbolic reference MYLONGESTR not resolved.
WARNING: Apparent symbolic reference MYLONGESTN not resolved.
MPRINT(ODSINDEX): length myrec $&mylongestr.. myname $&mylongestn.. ;
SYMBOLGEN: Macro variable LIB resolves to LIB2
MPRINT(ODSINDEX): set ods.LIB2_idx;
MPRINT(ODSINDEX): myrec=recreate;
MPRINT(ODSINDEX): myname=name;
MPRINT(ODSINDEX): drop recreate name;
MPRINT(ODSINDEX): run;
WARNING: The data set ODS.LIB2_IDX may be incomplete. When this step was
stopped there were 0 observations and 5 variables.
WARNING: Data set ODS.LIB2_IDX was not replaced because this step was stopped.
ERROR: Variable MEMBR not found.
ERROR: Variable NAME not found.
MPRINT(COMPINDEX): by membr name source_type;
ERROR: Variable SOURCE_TYPE not found.
MPRINT(COMPINDEX): run;
MPRINT(COMPINDEX): proc sort data=ods.lib2_idx;
MPRINT(COMPINDEX): by membr name target_type;
MPRINT(COMPINDEX): run;
MPRINT(COMPINDEX): data ods.idx_comp;
MPRINT(COMPINDEX): length migrated not_migrated diff_type diff_recreate diff_inactive 8.;
MPRINT(COMPINDEX): merge ods.lib1_idx(in=in1) ods.lib2_idx(in=in2);
MPRINT(COMPINDEX): by membr name ;
MPRINT(COMPINDEX): if in1 or in2;
MPRINT(COMPINDEX): if in1 and in2 then migrated=1;
MPRINT(COMPINDEX): if in1 and not in2 then not_migrated=1;
MPRINT(COMPINDEX): if source_type ne target_type then diff_type=1;
MPRINT(COMPINDEX): if source_recreate ne target_recreate then diff_recreate=1;
MPRINT(COMPINDEX): if source_inactive ne target_inactive then diff_inactive=1;
MPRINT(COMPINDEX): run;
ERROR: BY variable membr is not on input data set ODS.LIB1_IDX.
ERROR: BY variable name is not on input data set ODS.LIB1_IDX.
WARNING: The data set ODS.IDX_COMP may be incomplete. When this step was
stopped there were 0 observations and 13 variables.
ERROR: File ODS.TEMPCOUNT.DATA does not exist.
MPRINT(COMPINDEX): if eof then do;
MPRINT(COMPINDEX): call symput("mymissing", cumfrequency);
MPRINT(COMPINDEX): end;
MPRINT(COMPINDEX): run;
MPRINT(COMPINDEX): data ods.tempprint1;
MPRINT(COMPINDEX): set ods.idx_comp;
MPRINT(COMPINDEX): where not_migrated=1;
MPRINT(COMPINDEX): run;
SYMBOLGEN: Macro variable MYMISSING resolves to
ERROR: The function TRIM referenced by the %SYSFUNC or %QSYSFUNC macro function has too few arguments.
ERROR: The function LEFT referenced by the %SYSFUNC or %QSYSFUNC macro function has too few arguments.The errors and warnings occur because you are accessing 32-bit files from a 64-bit SAS session.
The 64-bit session is accessing the 32-bit source library with Cross-Environment Data Access (CEDA), which does not support indexes. The errors occur when the CONTENTS procedure step in the 64-bit SAS session attempts to collect information about an index.
As a workaround to migrate and validate successfully, perform the following steps:
In a 32-bit Windows session:
In a 64-bit Windows session:
Proc migrate in=LIB1 out=LIB2; run;
Note: You can use any of the individual MEMTYPE validation macros for this step.
| Product Family | Product | System | SAS Release | |
| Reported | Fixed* | |||
| SAS System | N/A | Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.2 TS2M0 | |
| Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.2 TS2M0 | |||
| Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.2 TS2M0 | |||
| Microsoft Windows XP 64-bit Edition | 9.2 TS2M0 | |||
| Microsoft® Windows® for x64 | 9.2 TS2M0 | |||
| Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS2M0 | |||
| Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS2M0 | |||
| Microsoft Windows Server 2003 Standard Edition | 9.2 TS2M0 | |||
| Microsoft Windows XP Professional | 9.2 TS2M0 | |||
| Windows Vista | 9.2 TS2M0 | |||
| 64-bit Enabled AIX | 9.2 TS2M0 | |||
| 64-bit Enabled HP-UX | 9.2 TS2M0 | |||
| 64-bit Enabled Solaris | 9.2 TS2M0 | |||
| HP-UX | 9.2 TS2M0 | |||
| HP-UX IPF | 9.2 TS2M0 | |||
| Linux | 9.2 TS2M0 | |||
| Linux for x64 | 9.2 TS2M0 | |||
| Linux on Itanium | 9.2 TS2M0 | |||
| OpenVMS on HP Integrity | 9.2 TS2M0 | |||
| Solaris for x64 | 9.2 TS2M0 | |||
| Tru64 UNIX | 9.2 TS2M0 | |||
| Type: | Problem Note |
| Priority: | medium |
| Date Modified: | 2010-08-23 15:24:34 |
| Date Created: | 2009-12-04 14:15:25 |


