2014-06-06 3 views
7

일부 매크로를 사용하는 SAS 프로그램을 작성 중입니다. 그러나 SAS는 갑자기 내가 제출 한 코드의 실행을 중단했습니다. 코드의 일부를 선택하여 제출하면 로그에 복사 된 것을 볼 수 있지만 그게 전부입니다. 메모, 오류 또는 경고가 없습니다. 코드도 실행되지 않습니다. 코드가 매크로 변수가없는 간단한 데이터 단계 인 경우 중요하지 않습니다. 누락 된 것이 있습니까? 확인하거나 확인해야하는 항목은 무엇입니까?제출 후 SAS 코드가 실행되지 않고 로그에 아무것도 나타나지 않습니다.

+2

이 질문은 숙련 된 SAS 사용자에게 분명해야합니다. 매크로 코드에 사용 된 따옴표가 일치하지 않는 경우 많은 사람들이 빠져들고있는 함정입니다. – Longfish

+0

@Keith 그런 식으로 느끼면 충분한 투표자 (지금!)가 투표를 다시 열 수 있습니다 - 자유롭게 해주십시오. – Joe

+0

@ user3714321 이것이 아마도 받아 들일만한 질문이라고 생각하지만, 조금 더 자세하게 개선되었을 것입니다. 아마도 전체 코드가 너무 많을 수도 있지만, 어떤 종류의 매크로를 작성해야하는지에 대한 예가 될 것입니다. 자신이하는 일을 더 분명히하기 위해 최소한 도움이됩니다. – Joe

답변

9

매크로 중 하나의 불균형 따옴표가있는 것처럼 들립니다. 아래의 코드를 실행하면 오류가 없어야하며 오류 코드를 확인해야합니다.

*); */; /*’*/ /*”*/; %mend; 
+2

ps, ​​왜 질문이 보류되어 있는지 잘 모르겠습니다. 이것은 많은 경험 많은 SAS 사용자가 경력을 쌓아 왔기 때문에 설명 된 증상이 뇌에 묻혀있는 시나리오입니다. 나는 처음에 일어 났을 때 머리카락을 찢어 버린 유일한 사람이 아니라고 확신합니다! – Longfish

+0

+1 ... '내가 처음 일어난 때 그들의 머리를 찢어 버린 유일한 사람이 아니라고 확신한다!' SAS는 이러한 문제에 대한 로그 메시지를 향상시켜야 할 필요가 있습니다. 거의 모든 사람들이 어떤 시점에서 발생하고 이러한 오류가 발생하기까지 너무 많은 시간을 낭비하게됩니다. – Keni

+0

도움이되지 못했습니다! 나는해야한다 *); * /;/* '*// *'* /; %수선; 직접? – Mann

1

매크로 코딩 중에 나에게도 이와 똑같은 문제가 발생했습니다. 예외는 괄호가 일치하지 않는 것입니다. 문제 코드의 원래 라인은

을했다 "... % 다음 % (DLINE = % str을하자 (P GE (22) 다음 직원 EQ 0 직원 = 1의 경우);"

주 타의 추종을 불허하는 "("문자 P 변수. 하나는 제거하기 전에 "(" 또는 추가 ")" "EQ 0"후가 해결 문제.

0

나는 또한이 문제를 가지고 왜 알아낼.

나는 (모든 매크로 코드를 축소하는 경우 내 프로젝트 코드의 동일한 파일에있는 임시 파일)을 다시 실행하십시오.

SAS는 실제로 접힌 부분 만 실행하므로 매크로의 첫 번째 행에 불과합니다.

위의 코드는 내 문제를 해결하지만 나중에 오류가 발생하지 않도록 확장 된 매크로 코드를 다시 실행해야합니다.