sp_OAGetErrorInfo(Transact-SQL)

적용 대상:SQL Server

OLE 자동화 오류 정보를 가져옵니다.

Transact-SQL 구문 표기 규칙

구문

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

인수

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

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

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

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

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

참고 항목

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

반환 코드 값

OLE Automation 개체에서 반환된 HRESULT의 정수 값인 0(성공) 또는 0이 아닌 숫자(실패)입니다.

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

결과 집합

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

열 이름 데이터 형식 설명
오류 binary(4) 오류 번호의 이진 표시입니다.
Source nvarchar(nn) 오류의 소스.
설명 nvarchar(nn) 오류에 대한 설명입니다.
Helpfile nvarchar(nn) 원본에 대한 도움말 파일입니다.
HelpID int 도움말 원본 파일에 있는 도움말 컨텍스트 ID입니다.

설명

OLE Automation 저장 프로시저를 호출할 때마다(sp_OAGetErrorInfo 제외) 오류 정보가 다시 설정되므로 sp_OAGetErrorInfo 가장 최근의 OLE Automation 저장 프로시저 호출에 대해서만 오류 정보를 가져옵니다. sp_OAGetErrorInfo 오류 정보를 다시 설정하지 않으므로 동일한 오류 정보를 가져오기 위해 여러 번 호출할 수 있습니다.

다음 표에서는 OLE 자동화 오류 및 일반적인 원인을 나열합니다.

오류 및 HRESULT 일반적 원인
잘못된 변수 형식(0x80020008) 메서드 매개 변수로 전달된 Transact-SQL 값의 데이터 형식이 메서드 매개 변수의 Microsoft Visual 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 개체가 In-process OLE 서버(.dll 파일)로 등록되었지만 .dll 파일을 찾거나 로드할 수 없습니다.
형식 불일치(0x80020005) 반환된 속성 값 또는 메서드 반환 값을 저장하는 데 사용되는 Transact-SQL 지역 변수의 데이터 형식이 속성 또는 메서드 반환 값의 Visual Basic 데이터 형식과 일치하지 않습니다. 또는 속성 또는 메서드 반환 값을 요청했으나 값이 반환되지 않았습니다.
sp_OACreate 'context' 매개 변수의 데이터 형식 또는 값이 잘못되었습니다. (0x8004275B) 컨텍스트 매개 변수의 값은 1, 4 또는 5 중 하나여야 합니다.

HRESULT 반환 코드 처리에 대한 자세한 내용은 OLE Automation 반환 코드 및 오류 정보를 참조하세요.

사용 권한

sysadmin 고정 서버 역할의 멤버 자격이 필요하거나 이 저장 프로시저에 대한 직접 실행 권한이 필요합니다. Ole Automation ProceduresOLE 자동화와 관련된 시스템 프로시저를 사용하려면 구성을 사용하도록 설정해야 합니다.

예제

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

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;  

참고 항목

OLE 자동화 저장 프로시저(Transact-SQL)
OLE 자동화 샘플 스크립트