스칼라 JavaScript UDFs¶
이 항목에서는 스칼라 JavaScript UDF(사용자 정의 함수)를 다룹니다.
이 항목의 내용:
소개¶
스칼라 JavaScript UDF는 각 입력 행에 대해 하나의 출력 행을 반환합니다. 출력 행에는 하나의 열/값만 포함되어야 합니다.
기본 예는 JavaScript UDF 소개 에 있습니다. 추가 예는 아래와 같습니다.
참고
스칼라 함수(UDF)의 입력 인자는 500개로 제한됩니다.
예¶
이 섹션에는 스칼라 JavaScript UDF의 예가 포함되어 있습니다.
재귀¶
다음 예는 JavaScript UDF가 자신을 호출할 수 있음을 보여줍니다(즉, 재귀를 사용할 수 있음).
다음과 같이 재귀 UDF를 만드십시오.
CREATE OR REPLACE FUNCTION RECURSION_TEST (STR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
return (STR.length <= 1 ? STR : STR.substring(0,1) + '_' + RECURSION_TEST(STR.substring(1)));
$$
;
다음과 같이 재귀 UDF를 호출하십시오.
SELECT RECURSION_TEST('ABC');
+-----------------------+
| RECURSION_TEST('ABC') |
|-----------------------|
| A_B_C |
+-----------------------+
사용자 지정 예외¶
다음 예는 사용자 지정 예외를 발생시키는 JavaScript UDF를 보여줍니다.
다음과 같이 함수를 만드십시오.
CREATE FUNCTION validate_ID(ID FLOAT)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
try {
if (ID < 0) {
throw "ID cannot be negative!";
} else {
return "ID validated.";
}
} catch (err) {
return "Error: " + err;
}
$$;
유효한 값과 유효하지 않은 값으로 다음과 같이 테이블을 만드십시오.
CREATE TABLE employees (ID INTEGER);
INSERT INTO employees (ID) VALUES
(1),
(-1);
다음과 같이 함수를 호출하십시오.
SELECT ID, validate_ID(ID) FROM employees ORDER BY ID;
+----+-------------------------------+
| ID | VALIDATE_ID(ID) |
|----+-------------------------------|
| -1 | Error: ID cannot be negative! |
| 1 | ID validated. |
+----+-------------------------------+
문제 해결¶
JavaScript UDF 문제 해결 섹션을 참조하십시오.