PROC DS2 ;
package regexp / overwrite=yes;
method match( varchar(1024) pattern, varchar(1024) string ) returns double;
return prxmatch(pattern, string);
end;
run;
QUIT;
PROC FEDSQL;
CREATE TABLE example (
id VARCHAR(11)
);
QUIT;
PROC FEDSQL;
INSERT INTO example
SELECT
CASE LENGTH(id)
WHEN 11 THEN SUBSTRING(id FROM 1 FOR 6) || SUBSTRING(id FROM 8 FOR 4)
WHEN 12 THEN SUBSTRING(id FROM 1 FOR 6) || SUBSTRING(id FROM 8 FOR 5)
END AS id
FROM MYDATABASE.MYSCHEMA.MYTABLE
WHERE regexp.match('/[0-9]+/', id) = 1 AND regexp.match('/[A-Z]+/', id) = 0;
QUIT;
Throws this error:
ERROR: Access Violation occurred during PREPARE!
What do I have to do to avoid this error?
I note you've posted several times for the same subject. You would be better off opening a track to SAS Technical Support and report all of your DS2 access violation problems to them. They are in the best position to help.
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.
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.