다음을 통해 공유


sp_OAGetErrorInfo(Transact-SQL)

OLE 자동화 오류 정보를 얻습니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_OAGetErrorInfo [ objecttoken ]
    [ , source OUTPUT ] 
    [ , description OUTPUT ] 
    [ , helpfile OUTPUT ] 
    [ , helpid OUTPUT ] 

인수

  • objecttoken
    sp_OACreate를 사용하여 이전에 만든 OLE 개체의 토큰이거나 NULL입니다. objecttoken을 지정하면 해당 개체에 대한 오류 정보가 반환됩니다. NULL이 지정되면 전체 일괄 처리에 대한 오류 정보가 반환됩니다.

  • sourceOUTPUT
    오류 정보의 원본입니다. 지정된 경우 로컬 char, nchar, varchar 또는 nvarchar 변수여야 합니다. 필요한 경우 반환 값을 잘라내어 로컬 변수에 맞춥니다.

  • descriptionOUTPUT
    오류에 대한 설명입니다. 지정된 경우 로컬 char, nchar, varchar 또는 nvarchar 변수여야 합니다. 필요한 경우 반환 값을 잘라내어 로컬 변수에 맞춥니다.

  • helpfileOUTPUT
    OLE 개체의 도움말 파일입니다. 지정된 경우 로컬 char, nchar, varchar 또는 nvarchar 변수여야 합니다. 필요한 경우 반환 값을 잘라내어 로컬 변수에 맞춥니다.

  • helpidOUTPUT
    컨텍스트 ID의 도움말 파일입니다. 지정된 경우 로컬 int 변수여야 합니다.

    [!참고]

    이 저장 프로시저의 매개 변수는 이름이 아니라 위치로 지정됩니다.

반환 코드 값

0(성공) 또는 0이 아닌 수(실패)이며 OLE 자동화 개체가 반환한 HRESULT의 정수 값입니다.

HRESULT 반환 코드에 대한 자세한 내용은 OLE 자동화 반환 코드 및 오류 정보를 참조하십시오.

결과 집합

출력 매개 변수가 지정되지 않으면 오류 정보는 클라이언트에 결과 집합으로 반환됩니다.

열 이름

데이터 형식

설명

Error

binary(4)

오류 번호의 이진 표시입니다.

Source

nvarchar(nn)

오류의 원본입니다.

Description

nvarchar(nn)

오류 설명입니다.

Helpfile

nvarchar(nn)

원본에 대한 도움말 파일입니다.

HelpID

int

도움말 원본 파일에 있는 도움말 컨텍스트 ID입니다.

주의

sp_OAGetErrorInfo를 제외한 각 OLE 자동화 저장 프로시저 호출은 오류 정보를 다시 설정하므로 sp_OAGetErrorInfo는 가장 최근 OLE 자동화 저장 프로시저 호출에 대한 오류 정보만을 얻습니다. sp_OAGetErrorInfo는 오류 정보를 다시 설정하지 않으므로 여러 번 호출해도 같은 오류 정보를 얻을 수 있습니다.

다음은 OLE 자동화 오류 및 일반적 원인을 나열한 표입니다.

오류 및 HRESULT

일반적 원인

잘못된 변수 유형(0x80020008)

메서드 매개 변수로 전달된 Transact-SQL 값의 데이터 형식이 MicrosoftVisual Basic 메서드 매개 변수의 데이터 형식과 일치하지 않았거나 NULL 값이 메서드 매개 변수로 전달되었습니다.

알 수 없는 이름(0x8002006)

지정한 개체에 대해 지정한 속성 또는 메서드 이름이 없습니다.

잘못된 클래스 문자열(0x800401f3)

지정된 ProgID 또는 CLSID가 SQL Server의 인스턴스에서 OLE 개체로 등록되어 있지 않습니다. 사용자 지정 OLE 자동화 서버는 sp_OACreate를 사용하여 인스턴스화되기 전에 등록되어야 합니다. In-process(.dll) 서버의 경우에는 Regsvr32.exe 유틸리티를 사용하고 로컬(.exe) 서버의 경우에는 /REGSERVER 명령줄 스위치를 사용하여 등록할 수 있습니다.

서버 실행이 실패했습니다.(0x80080005)

지정된 OLE 개체가 로컬 OLE 서버(.exe 파일)로 등록되어 있지만 .exe 파일을 찾거나 시작할 수 없습니다.

지정된 모듈을 찾을 수 없습니다.(0x8007007e)

지정된 OLE 개체가 종속 OLE 서버(.dll 파일)로 등록되어 있지만 .dll 파일을 찾거나 로드할 수 없습니다.

유형 불일치(0x80020005)

반환된 속성 값 또는 메서드 반환 값을 저장하는 데 사용한 Transact-SQL 로컬 변수의 데이터 형식이 속성 또는 메서드 반환 값의 Visual Basic 데이터 형식과 일치하지 않습니다. 또는 속성 또는 메서드 반환 값을 요청했으나 값이 반환되지 않았습니다.

sp_OACreate 'context' 매개 변수의 데이터 형식 또는 값이 잘못되었습니다. (0x8004275B)

컨텍스트 매개 변수의 값은 1, 4, 5 중 하나여야 합니다.

HRESULT 반환 코드를 처리하는 방법은 OLE 자동화 반환 코드 및 오류 정보를 참조하십시오.

사용 권한

sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

다음은 OLE 자동화 오류 정보를 표시하는 예입니다.

DECLARE @output varchar(255)
DECLARE @hr int
DECLARE @source varchar(255)
DECLARE @description varchar(255)
PRINT 'OLE Automation Error Information'
EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT
IF @hr = 0
BEGIN
    SELECT @output = '  Source: ' + @source
    PRINT @output
    SELECT @output = '  Description: ' + @description
    PRINT @output
END
ELSE
BEGIN
    PRINT '  sp_OAGetErrorInfo failed.'
    RETURN
END