저장 프로시저 명명 - Amazon Redshift

저장 프로시저 명명

이름이 동일하나 입력 인수 데이터 유형 또는 서명이 다른 프로시저를 정의하는 경우, 새 프로시저를 생성합니다. 이렇게 하면 프로시저 이름이 오버로드됩니다. 자세한 내용은 프로시저 이름 오버로드 섹션을 참조하세요. Amazon Redshift는 출력 인수를 기반으로 하는 프로시저 오버로드를 사용하지 않습니다. 이름 및 입력 인수 데이터 유형이 동일하지만 출력 인수 유형은 다른 두 프로시저를 가질 수 없습니다.

소유자 또는 수퍼유저는 저장 프로시저의 본문을 동일한 서명이 있는 새 본문으로 바꿀 수 있습니다. 저장 프로시저의 서명 또는 반환 형식을 변경하려면 저장 프로시저를 삭제한 후 다시 생성합니다. 자세한 내용은 DROP PROCEDURECREATE PROCEDURE을 참조하십시오.

저장 프로시저를 실행하기 전에 저장 프로시저의 명명 규칙을 고려하여 잠재적 충돌이나 뜻밖의 결과를 피할 수 있습니다. 프로시저 이름을 오버로드할 수 있으므로 기존 및 향후 Amazon Redshift 프로시저 이름과 충돌할 수 있습니다.

프로시저 이름 오버로드

프로시저는 이름과 서명으로 구분합니다. 여기에서 서명이란 입력 인수의 수와 인수의 데이터 형식을 말합니다. 서명만 다르다면 동일한 스키마의 프로시저 2개가 이름이 같을 수도 있습니다. 다시 말해 프로시저 이름을 오버로드할 수 있습니다.

프로시저를 실행하면 쿼리 엔진이 입력 인수의 수와 데이터 형식을 기준으로 호출할 프로시저를 결정합니다. 이때 오버로딩을 사용하면 다수의 인수를 바꿔가며 CREATE PROCEDURE 명령에서 허용하는 최대 수까지 프로시저를 시뮬레이셜할 수 있습니다. 자세한 내용은 CREATE PROCEDURE 섹션을 참조하세요.

이름 충돌 방지

접두사 sp_를 사용하여 모든 절차의 이름을 지정하는 것이 좋습니다. Amazon Redshift는 저장 프로시저 전용으로 sp_ 접두사를 예약합니다. 프로시저 이름에 sp_ 접두사를 붙이면 프로시저 이름이 기존 또는 향후 Amazon Redshift 프로시저 이름과 충돌하지 않게 할 수 있습니다.