프로그래밍 기술/웹 검색 엔진 만들기

5.1.19 AddInvertedItem 저장 프로시저

언제나휴일 2017. 12. 6. 10:47
반응형

5.1.19 AddInvertedItem 저장 프로시저


 

 이번에는 형태소와 웹 페이지 주소, 참조 카운터를 입력 인자로 받아 동적으로 생성한 형태소 테이블에 웹 페이지 주소와 참조 카운터를 추가하는 저장 프로시저를 구현해 봅시다. 저장 프로시저 이름은 AddInvertedItem으로 결정합시다.

 

 입력 인자로 형태소 이름, 웹 페이지 주소, 참조 카운터를 받습니다.

CREATE PROCEDURE dbo.AddInvertedItem

    (

    @Morpheme varchar(50),

    @Url varchar(50),

    @Refcnt int

    )

 

 먼저 GetMIndex 저장 프로시저를 이용하여 형태소 이름으로 역 파일 테이블에 있는 형태소 항목 번호를 얻어옵니다. 형태소 항목 번호를 얻어오기 위한 변수도 선언합니다.

declare @MIndex int

Exec GetMIndex @Morpheme, @MIndex OUTPUT

 

 동적 테이블에 추가할 것이므로 쿼리를 동적으로 작성해야 합니다. 그리고 이번에는 쿼리문에 입력 인자로 받은 웹 페이지 주소와 참조 카운터도 추가해야 합니다. 따라서 쿼리문과 파라미터와 항목 번호를 캐스팅하여 테이블 이름의 뒷 부분을 만들 변수를 선언합니다.

declare @query nvarchar(200)

declare @param nvarchar(200)

declare @MIndex int

declare @TName varchar(50)

 

 형태소 항목 번호로 테이블의 뒷 부분 문자열을 설정합니다.

set @TName = CAST(@MIndex as varchar(50) )

 

 insert 쿼리문을 설정합니다.

set @query = 'insert into MTB_'+@TName+

                   ' (Url,Refcnt) values(@p_url, @p_ref)'

 

 

 파라미터를 설정합니다.

set @param = '@p_url varchar(50), @p_ref int'

 

 입력 인자로 전달받은 값을 파라미터와 매핑하여 쿼리문을 실행합니다.

execute sp_executesql @query, @param, @p_url = @Url, @p_ref = @Refcnt

 

AddInvertedItem 저장 프로시저

CREATE PROCEDURE dbo.AddInvertedItem

    (

    @Morpheme varchar(50),

    @Url varchar(50),

    @Refcnt int

    )

AS

    declare @query nvarchar(200)

    declare @param nvarchar(200)

    declare @MIndex int

    declare @TName varchar(50)

 

    Exec GetMIndex @Morpheme, @MIndex OUTPUT

 

    set @TName = CAST(@MIndex as varchar(50) )

    set @query = 'insert into MTB_'+@TName+

                       ' (Url,Refcnt) values(@p_url, @p_ref)'

    set @param = '@p_url varchar(50), @p_ref int'

 

    execute sp_executesql @query, @param, @p_url = @Url, @p_ref = @Refcnt

RETURN

 

반응형