UNRESOLVED_ROUTINE 오류 클래스
검색 경로<routineName>
에서 함수 <searchPath>
를 확인할 수 없습니다.
매개 변수
- routineName: 확인할 수 없는 함수의 이름입니다.
-
searchPath: 스키마가 한정되지 않은 경우
routineName
검색된 순서가 지정된 스키마 목록입니다.
설명
지속형 함수는 세 가지 이름 부분으로 <catalog>.<schema>.<relation>
구성됩니다.
이름의 세 부분을 모두 지정하지 않으면 현재 카탈로그 또는 현재 스키마를 사용하여 암시적으로 완료됩니다.
이는 경로를 완전히 지정하지 않는 한 파일 시스템의 작업 디렉터리가 볼 수 있는 파일에 영향을 주는 방식과 유사합니다.
임시 함수는 세션 또는 쿼리 내에만 존재하며 정규화되어서는 안 됩니다.
함수를 찾지 못하는 가장 일반적인 이유는 다음과 같습니다.
- 함수가 없습니다.
- 함수 이름의 철자가 잘못되었습니다.
- 사용자 정의 함수는 다른 스키마에 있습니다.
- 사용자 정의 함수가 현재 스키마에 없습니다.
- 액세스 권한이 없으므로 사용자 정의 함수를 볼 수 없습니다.
- 호출하려는 기본 제공 함수는 이 Azure Databricks 릴리스에서 사용할 수 없습니다.
완화 방법
다음을 검토하여 오류를 완화합니다.
함수 이름을 잘못 입력했나요?
올바른 함수 이름을 확인하는 데 사용합니다
SHOW FUNCTIONS IN <schema>
.함수가 다른 스키마에 있나요?
함수가 Unity 카탈로그의 카탈로그에 있는 경우 다음 쿼리를 실행합니다.
SELECT routine_schema FROM information_schema.routines WHERE routine_name = '<routinename>'
함수가 있는 현재 카탈로그 내의 스키마를 나열합니다.
함수가 Unity 카탈로그 외부에 있는 경우 후보 스키마를 찾는 데 사용합니다
SHOW SCHEMAS
. 함수를 검색하는 데 사용합니다SHOW FUNCTIONS IN <schema>
.이름을 정규화하지 않았으므로 결과가 함수의
VALUES current_schema()
정규화된 이름과 일치하지 않나요?해당 스키마 및 카탈로그로 한정
functionName
하거나 실행USE SCHEMA
하여 암시적 스키마를 설정합니다.임시 함수를 참조했지만 이전, 만료되었거나 다른 세션에 있었나요?
임시 함수를 사용하여
CREATE TEMPORARY FUNCTION <routineName> …
다시 만들거나 지속형 함수를 사용하여 전환합니다.개체가 있는 경우와 같이
DROP FUNCTION
DDL 문을 실행하시겠습니까?IF EXISTS
와 같은DROP FUNCTION <routineName> IF EXISTS
절을 사용하여 문을 실행합니다.함수가 있다는 것을 알고 계
SHOW FUNCTIONS
십니까?관리자에게 문의하여 함수에 액세스할 수 있습니다. 스키마 및 카탈로그에 액세스해야 할 수도 있습니다.
오류를 해결하는 방법에 대한 자세한 내용은 함수 해결을 참조 하세요.
예제
> CREATE SCHEMA IF NOT EXISTS myschema;
> CREATE OR REPLACE FUNCTION myschema.myfunc() RETURNS INT RETURN 5;
--
-- The function name has been misspelled
--
> SELECT myschema.myfun();
[UNRESOLVED_ROUTINE] Cannot resolve function `myschema`.`myfun` on search path [`system`.`builtin`, `system`.`session`, `spark_catalog`.`default`].; line 1 pos 7
-- Use SHOW FUNCTIONS to find the correct nme
> SHOW USER FUNCTIONS IN myschema;
spark_catalog.myschema.myfunc
-- Correct the spelling
> SELECT myschema.myfunc();
5
--
-- The qualifier has been misspelled
--
> CREATE SCHEMA IF NOT EXISTS wrongschema;
> SELECT wrongschema.myfunc;
[UNRESOLVED_ROUTINE] Cannot resolve function `wrongschema`.`myfunc` on search path [`system`.`builtin`, `system`.`session`, `spark_catalog`.`default`].; line 1 pos 7
-- Find candidate schemas
> SHOW SCHEMAS;
myschema
wrongschema
-- Verify the function exists in the candidate schema
> SHOW USER FUNCTIONS IN myschema;
spark_catalog.myschema.myfunc
> SELECT myschema.myfunc();
5
--
-- Change current schema to find an unqualified function
--
> SELECT myfunc();
[UNRESOLVED_ROUTINE] Cannot resolve function `myfunc` on search path [`system`.`builtin`, `system`.`session`, `spark_catalog`.`default`].; line 1 pos 7
> USE SCHEMA myschema;
SELECT myfunc();
5