07-06-2017 06:48 AM
while i was tryed to submited this:
PROC SQL; SELECT *FROM DICTIONARY.TABLES WHERE UPCASE(LIBNAME)=”CRM_ANAL”; QUIT;
an occured excuting the workspace job "program" Integration technologies failed to submerror it the code. [Error] Failed to transcode data from U_UTF8_CE to U_LATIN9_CE encoding because it contained charectores which are not supported by your sas session encoding .please review your encoding= and local= SAS system options to ensure that they can accommodate the data that you want to process. A portion of the source string ,in hex representation is:[None]7fe808107 ce4:3b 2a 27 3b 2a 2f 3b 71 75 69 74 72 |;*';*";*/;quit;r| [None]7fe808107 cf4:75 6e 3b 0d 0a 4f 50 54 49 4f 4e 53 20 50 41 47 |un;..OPTIONS PAG| [Error]Some code points did not transcode. please give detail guide lines for how to config .
07-06-2017 07:02 AM - edited 07-06-2017 07:13 AM
That looks like an interesting problem.
UTF-8 is a multi byte character set but U_LATIN9_CE is single byte.
Multi byte character sets can encode many more characters than single byte so it can happen that a multi byte character simply can't get mapped into a single byte character. That's when SAS throws the Error you get.
What I've never seen before is that this can also happen with SAS dictionary tables. The only explanation I have in the moment:
Your SAS session runs in single byte, your libref CRM_ANAL points to a data base which is in UFT-8 and at least one of the table names in this data base uses a multi byte character which can't get mapped into U_LATIN9_CE.
I suggest you raise this issue with SAS TechSupport.
To test my theory: Can you please run below code and let us know the outcome? MEMNAME is the only column I can see which could contain such non-mappable characters and though a SQL which doesn't return this column should work.
proc sql; select libname, /* memname, */ memtype, dbms_memtype, memlabel, typemem, crdate, modate, nobs, obslen, nvar, protect, compress, encrypt, npage, filesize, pcompress, reuse, bufsize, delobs, nlobs, maxvar, maxlabel, maxgen, gen, attr, indxtype, datarep, sortname, sorttype, sortchar, reqvector, datarepname, encoding, audit, audit_before, audit_admin, audit_error, audit_data, num_character, num_numeric from DICTIONARY.TABLES WHERE UPCASE(LIBNAME)="CRM_ANAL"; quit;
07-06-2017 07:43 AM - edited 07-06-2017 07:45 AM
If you really used this:
in your code, then it's no miracle. These are not standard double quotes, but double quotes from some NLS character set, and therefore UTF coded (hex e2 80 9d). Use standard double quotes.
07-06-2017 07:46 AM
I guess that happened because the OP copied the code first into MS WORD or the like. But such quotes would create a syntax Error and not the Error the OP posted.
27 proc sql; 28 select * 29 from DICTIONARY.TABLES 30 where libname = ”WORK”; _ 22 200 ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, a missing value, (, *, +, -, ALL, ANY, BTRIM, CALCULATED, CASE, INPUT, PUT, SELECT, SOME, SUBSTRING, TRANSLATE, USER. ERROR 200-322: The symbol is not recognized and will be ignored.
07-06-2017 07:48 AM - edited 07-06-2017 07:52 AM
I guess that happened because the OP copied the code first into MS WORD or the like. But such quotes would create a syntax Error and not the Error the OP posted.27 proc sql; 28 select * 29 from DICTIONARY.TABLES 30 where libname = ”WORK”; _ 22 200 ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, a missing value, (, *, +, -, ALL, ANY, BTRIM, CALCULATED, CASE, INPUT, PUT, SELECT, SOME, SUBSTRING, TRANSLATE, USER. ERROR 200-322: The symbol is not recognized and will be ignored.
Have to differ.
Just tried that exact code from EG 7.1 to SAS 9.4 on AIX, and got exactly the error message from EG (not SAS, mind!) that the OP reported.
Edit: the code never really reaches the SAS session, as Integration Technologies coughs up while trying to transmit the code. Did you run the code from Studio or DM?
07-06-2017 07:52 AM - edited 07-06-2017 07:53 AM
What I've posted has been run in EG 7.13 HF5 (188.8.131.5286) (64-bit) against a local SAS under Win7.
Just to re-test, can you please do the following:
1. Re-connect to your server so that you get a clean new SAS Session
2. Run the following code and let us know the outcome.
proc sql; select libname from DICTIONARY.TABLES WHERE UPCASE(LIBNAME)="CRM_ANAL"; quit;
07-06-2017 07:54 AM
What I've posted has been run in 7.13 HF5 (184.108.40.20686) (64-bit) agains a local SAS.
Then Integration Technologies does not come into play. It's the quotes, I bet you a can of Ottakringer on that.