---
schema_version: "1"
id: 4fd1ef3cbfca44d261f9bf04cc6d3538e2cdcb7b2daa3ed51fa460a3c03c00c1
title: 저장 프로시저
collection: tableau
version: current
locale: ko-kr
portal_url: https://docs.salesforce.com/tableau/current/ko-kr/pro/desktop/connect_basic_stored_procedures.md
canonical_url: https://help.tableau.com/current/pro/desktop/ko-kr/connect_basic_stored_procedures.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1dd02a864479938195aa8e39c23faebee23003bf22620d265ce41fa403f0cf8c
description: Use a stored procedure to define a database connection in Tableau, with database-specific constraints.
---
[주요 콘텐츠로 건너뛰기](#main-content)

# 저장 프로시저 사용

저장 프로시저는 관계형 데이터베이스 시스템에 액세스하는 응용 프로그램에서 사용할 수 있는 하위 루틴입니다. SAP Sybase ASE, Microsoft SQL Server 또는 Tableau의 Teradata 데이터베이스에 연결하는 경우 저장 프로시저를 사용하여 연결을 정의할 수 있습니다.

Oracle의 경우 테이블 함수를 사용하여 연결을 정의할 수 있습니다. Oracle 테이블 함수는 저장 프로시저와 유사하게 작동하며 데이터 원본 페이지에서 저장 프로시저 아래에 나열됩니다.

이러한 데이터 유형 중 하나를 사용하여 데이터 원본을 만드는 경우 사용할 수 있는 프로시저가 저장 프로시저에 나열됩니다(Microsoft SQL Server 예제 참조).

![데이터 패널에서 검색된 저장 프로시저 목록입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/stored_procedures1.png)

왼쪽 패널에서 프로시저를 캔버스로 끌거나 나열된 프로시저 중 하나를 두 번 클릭합니다. 프로시저에서 매개 변수를 사용할 수 있는 경우 매개 변수 대화 상자가 자동으로 표시됩니다. 

값을 입력하는 대신 기존 Tableau 매개 변수를 사용하거나 값에 대해 새 Tableau 매개 변수를 만듭니다.

![데이터 유형 매개 변수 테이블입니다.](/tableau/current/ko-kr/pro/desktop/ko-kr/Img/stored_procedures3.png)

그런 다음 뷰에 Tableau 매개 변수를 표시하면 사용자가 프로시저에서 매개 변수 값을 대화식으로 변경할 수 있습니다.

저장 프로시저는 페더레이션, 관계 또는 조인을 지원하지 않습니다. 논리적 계층의 단일 논리적 테이블에 나타나며 조인/유니온 캔버스(물리적 계층)를 열 수 없습니다.

## 저장 프로시저 참고 사항

저장 프로시저를 사용하여 Tableau용 데이터 원본을 정의하는 경우에는 다음을 주의합니다.

- 저장 프로시저에서 둘 이상의 결과 집합이 반환되는 경우 첫 번째 결과만 읽히고 나머지는 무시됩니다.
- 저장 프로시저에 출력 매개 변수가 있는 경우 Tableau에서는 저장 프로시저가 필터링됩니다.
- 비스칼라 유형의 매개 변수를 포함하는 저장 프로시저는 제외됩니다.
- Tableau에서 일치하는 유형이 없는 결과 집합 열(예: varbinary, geometry 및 hierarchyid)이 로깅됩니다. 모든 결과 집합 열이 알 수 없는 데이터 유형으로 매핑되는 경우 Tableau에서 "
    
    "...결과 집합에 사용할 수 있는 열이 없습니다."라는 메시지를 표시합니다.
- 결과 집합을 반환하지 않는 저장 프로시저가 데이터 원본 페이지에 나열되지만 선택 시 실패합니다.
- 저장 프로시저에서 필요로 하는 매개 변수에 대한 값이 제공되지 않는 경우 오류가 발생합니다. Tableau에서는 매개 변수가 필요한지 여부를 미리 결정할 수 없습니다.
- 저장 프로시저에 대해서는 트랜잭션 관리가 수행되지 않습니다. 즉 저장 프로시저 작성자는 저장 프로시저를 호출하기 전에 트랜잭션을 시작하거나 호출 후에 커밋하는 작업을 Tableau에 의존해서는 안 됩니다.
- 저장 프로시저가 올바르게 작동하려면 열 이름이 고유해야 합니다. 두 개의 열에 같은 이름이 있거나 이름을 지정하지 않으면 다음과 같은 오류가 나타날 수 있습니다.
- 저장 프로시저에 여러 쿼리가 있는 경우(예: 다른 테이블에서 값 읽기 또는 임시 조합 포함 등) 각 쿼리는 같은 열 집합을 같은 순서(같은 이름 및 데이터 유형)로 반환해야 합니다. 열 순서와 이름이 쿼리 결과와 일치하게 하려면 `CAST(Username as VARCHAR(20))`와 같이 `CAST` 를 명시적으로 사용하여 올바른 데이터 유형을 사용했는지 확인하고 명시적인 열 이름을 사용해야 합니다. 저장 프로시저에서 이러한 지침을 따르지 않는 경우 오류 메시지가 표시될 수 있습니다.
    
    "InsertData: 바인딩되지 않은 열 오류"
- 여러 쿼리가 있는(예: 다른 테이블에서 값 읽기 또는 임시 조합 포함 등) 저장 프로시저에 오류가 발생한 경우 프로시저의 맨 위에 `SET NOCOUNT ON`을 추가해 보십시오. 이렇게 하면 Transact-SQL 문에 의해 영향 받는 행 개수를 표시하는 메시지가 쿼리 결과 집합의 일부로 반환되지 않습니다.

또한 다음 제약 조건이 특정 데이터베이스에 적용됩니다.

### Teradata 데이터베이스에 대한 저장 프로시저 제약 조건

다음 제약 조건이 Teradata 데이터베이스의 저장 프로시저에 적용됩니다.

- 모든 매개 변수에 대해 값이 제공되어야 합니다. 사용자가 하나 이상의 매개 변수에 대한 값을 제공하지 않는 경우 Tableau에서 저장 프로시저에 대해 제공된 값이 너무 작다는 Teradata 데이터베이스 오류를 표시합니다.

### SQL Server 데이터베이스에 대한 저장 프로시저 제약 조건

다음 제약 조건이 SQL Server 데이터베이스의 저장 프로시저에 적용됩니다.

- 저장 프로시저에 대한 결과 집합에 IMAGE 또는 TEXT 유형의 열이 포함되어 있는 경우 저장 프로시저가 "잘못된 구문" 오류 메시지와 함께 실패합니다.
- 결과 집합의 총 너비(각 행의 바이트 수)가 8060을 초과하는 경우 저장 프로시저가 실패합니다. 이는 수천 개의 텍스트 문자를 포함하기 위한 매우 넓은 테이블(수백 개의 열) 또는 큰 텍스트 열을 포함하는 테이블에서 발생할 수 있습니다.
- Tableau는 스키마 "sys"에서 저장 프로시저를 표시하지 않습니다. .
- 사용자가 프로시저에서 필요로 하는 하나 이상의 매개 변수에 대한 값을 제공하지 않는 경우 Tableau에서 "프로시저에는 @x 매개 변수에 대한 값이 필요하지만 값이 제공되지 않았습니다."라는 SQL Server 데이터베이스 오류를 표시합니다.
- 여러 쿼리가 포함된 저장 프로시저는 위의 저장 프로시저에 대한 참고 사항에 나열된 지침을 따라야 합니다.
- Tableau Desktop은 Microsoft SQL Server TIME 데이터 유형을 지원하지 않습니다. 이 유형의 필드가 Microsoft SQL Server 데이터베이스의 저장 프로시저에 포함되어 있으면 Tableau Desktop에서 가져오지 않습니다.

### SAP Sybase ASE 데이터베이스에 대한 저장 프로시저 제약 조건

다음 제약 조건이 SAP Sybase ASE 데이터베이스의 저장 프로시저에 적용됩니다(Windows만 해당).

- 데이터베이스에 제대로 구성된 원격 서버가 있어야 합니다.
- 사용자가 프로시저에서 필요로 하는 하나 이상의 매개 변수에 대한 값을 제공하지 않는 경우 Tableau에서 "프로시저에는 @x 매개 변수에 대한 값이 필요하지만 값이 제공되지 않았습니다."라는 Sybase ASE 데이터베이스 오류를 표시합니다.