Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

SAP HANA 저장 프로시저에서 발생하는 '스칼라 유형이 허용되지 않습니다' 오류 해결 방법

SAP HANA에서 저장 프로시저(Stored Procedure)를 생성할 때 '스칼라 유형이 허용되지 않습니다(scalar type is not allowed)'라는 오류 메시지가 나타나는 경우가 있습니다. 이 오류는 대부분 SQLScript 문법상의 사소한 실수에서 비롯되며, 코드 몇 군데만 수정하면 간단히 해결할 수 있습니다. 아래에서 원인과 해결 방법을 자세히 살펴보겠습니다.

수정하여 테스트할 수 있는 저장 프로시저 예제

먼저, 직접 편집하고 실행해 볼 수 있는 저장 프로시저 기본 구조는 다음과 같습니다.

PROCEDURE "SLT_DELETE"."HCDW.IT.IT::TO_TIMESTAMP_CALL" (IN IN_DATE DECIMAL(15),
    OUT OUT_DATE TIMESTAMP)
    LANGUAGE SQLSCRIPT AS
    --DEFAULT SCHEMA <default_schema_name>
    --READS SQL DATA AS
BEGIN
    select to_timestamp(IN_DATE) into OUT_DATE FROM DUMMY;
END;

이 프로시저는 입력받은 날짜 값을 TIMESTAMP 타입으로 변환하여 출력 파라미터에 담는 역할을 수행합니다.

오류의 핵심 원인: 잘못된 컬럼 참조 문법

문제가 되는 코드는 32번째 줄에 있는 다음 구문입니다.

SELECT: ORGID_ARTIKEL into

SAP HANA SQLScript에서 SELECT 절에서 컬럼 이름을 참조할 때 콜론(:)을 붙이는 것은 허용되지 않습니다. 콜론은 일반적으로 호스트 변수(host variable)나 바인드 변수를 참조할 때 사용하는 기호이며, 테이블의 컬럼 식별자에는 사용할 수 없습니다. 이러한 문법 오류로 인해 시스템은 해당 식별자를 스칼라 값으로 처리하지 못하고 오류를 반환하게 됩니다.

올바른 문법으로 수정하기

컬럼 이름은 큰따옴표(" ")로 감싸서 참조해야 합니다. 올바르게 수정한 구문은 다음과 같습니다.

SELECT "ORGID_ARTIKEL" into

이처럼 큰따옴표를 사용하면 SAP HANA가 해당 이름을 정확히 컬럼 식별자로 인식하며, '스칼라 유형이 허용되지 않습니다' 오류 없이 정상적으로 프로시저가 실행됩니다.

정리

SAP HANA에서 이 오류가 발생하면 다음 두 가지를 확인해 보세요.

  • SELECT 절에서 컬럼 이름 앞에 콜론(:)을 잘못 사용하고 있지 않은지 확인합니다.
  • 컬럼 이름은 반드시 큰따옴표("ORGID_ARTIKEL") 형태로 감싸서 작성합니다.

사소한 기호 하나의 차이가 전체 프로시저의 실행 여부를 좌우할 수 있으므로, SQLScript 작성 시 변수와 컬럼의 참조 규칙을 항상 주의 깊게 확인하는 것이 좋습니다.