JavaScript UDF 문제 해결

이 항목에서는 JavaScript UDF 문제 해결에 대한 정보를 제공합니다.

이 항목의 내용:

  • JavaScript는 대/소문자를 구분하지만, SQL은 이름을 대문자로 강제합니다. 이는 예를 들어 UDF 입력 매개 변수 이름에 영향을 줄 수 있습니다. JavaScript 코드는 모두 대문자를 사용하여 입력 매개 변수 이름을 참조해야 합니다.

  • 마스킹 정책 에서 JavaScript UDF를 사용하는 경우 열의 데이터 타입, UDF, 마스킹 정책이 일치하는지 확인하십시오.

문제 해결

오류 메시지: Variable is not defined

원인

SnowSQL에서 명령을 실행할 때 이 오류 메시지가 나타나는 경우 CREATE FUNCTION 명령 내의 앰퍼샌드(&)가 그 원인일 수 있습니다. (앰퍼샌드는 SnowSQL 변수 대체 문자입니다.) 예를 들어, SnowSQL에서 다음을 실행하면 이 오류가 발생합니다.

create function mask_bits(...)
    ...
    as
    $$
    var masked = (x & y);
    ...
    $$;
Copy

이 오류는 함수가 호출될 때가 아니라 생성될 때 발생합니다.

해결책

SnowSQL에서 변수 대체를 사용하지 않으려는 경우 다음 명령을 실행하여 변수 대체를 명시적으로 비활성화할 수 있습니다.

!set variable_substitution=false;
Copy

변수 대체에 대한 자세한 내용은 변수 사용하기 을 참조하십시오.