안녕하세요,
회사에서 mssql 2000을 사용중이구요, 프로시저로 받아온 변수값을 동적쿼리로 만들어 Insert 작업을 하는데
변수값이 where 절에서 인식을 안합니다..
CREATE procedure [dbo].[sp_by2_search_part_get] (
@page_size numeric(5,0) -- 페이지 사이즈(화면에 표시할 라인수)
, @page numeric(5,0) -- 페이지 번호(현재 페이지 번호)
, @bus_plc_cd char(02) -- 사업장(필수)
, @buyer_no varchar(7) -- 바이어코드
, @part_no varchar(20) -- 부품번호
, @part_nm nvarchar(100) -- 부품명
, @brand_cd varchar(10) -- 브랜드코드
)
as
begin
set transaction isolation level read uncommitted
set nocount on
set @sql =N''
set @sql = @sql + N' --Search List '
set @sql = @sql + N' Insert Into #tmp_order_search_list ( part_no, part_nm_kor, part_nm_eng, sale_part_no, factory_no, price_type, price_type_nm '
set @sql = @sql + N' , brand_cd, brand_nm, brand_nm_eng, model_cd, model_nm, model_nm_eng, maker_cd, maker_nm '
set @sql = @sql + N' , series, code, kangnam_stock, ilsan_stock, paju_stock, gen_price, sell_price, dc_rate, sale_part_ty, order_price_type) '
set @sql = @sql + N' Select '
set @sql = @sql + N' b2.part_no, isnull(b2.part_nm_kor,'') part_nm_kor, isnull(b2.part_nm_eng,'') part_nm_eng '
set @sql = @sql + N' , b1.sale_part_no, isnull(b1.factory_no,'') factory_no, b1.price_type, x2.cd_nm_eng price_type_nm '
set @sql = @sql + N' , b3.brand_cd, isnull(b3.brand_nm,'') brand_nm, isnull(b3.brand_nm_eng,'') brand_nm_eng '
set @sql = @sql + N' , isnull(m1.model_cd,'') model_cd, isnull(m1.model_nm,'') model_nm, isnull(m1.model_nm_eng,'') model_nm_eng '
set @sql = @sql + N' , isnull(m2.maker_cd,'') maker_cd, isnull(x1.cd_nm_eng,'') maker_nm '
set @sql = @sql + N' , isnull(m3.group_nm_eng,'') series '
set @sql = @sql + N' , isnull(m2.group_nm_eng,'') code '
set @sql = @sql + N' , 0.00 kangnam_stock, 0.00 ilsan_stock, 0.00 paju_stock, 0.00 gen_price, 0.00 sell_price, 0.00 dc_rate, ''1'' sale_part_ty, ''1'' order_price_type '
set @sql = @sql + N' From bit_salepart b1 with(nolock) '
set @sql = @sql + N' Inner join bit_part b2 with(nolock) on b1.part_no = b2.part_no '
set @sql = @sql + N' Inner join bit_brand b3 with(nolock) on b1.brand_Cd = b3.brand_cd '
set @sql = @sql + N' Left join bit_model m1 with(nolock) on b2.model_cd = m1.model_cd '
set @sql = @sql + N' Left join bit_model_group m2 with(nolock) on m1.ref_group_cd = m2.ref_group_cd '
set @sql = @sql + N' Left join bit_model_group m3 with(nolock) on m2.maker_cd = m3.maker_cd and m2.group_cd1 = m3.group_cd1 and m3.group_cd2 = ''000'' '
set @sql = @sql + N' Left join cmt_comm_cd x1 with(nolock) on m2.maker_cd = x1.minor_cd and x1.major_Cd = ''C0029'' '
set @sql = @sql + N' Left join cmt_comm_cd x2 with(nolock) on b1.price_type = x2.minor_Cd and x2.major_cd = ''CE002'' '
set @sql = @sql + N' Where 1=1 '
If @part_no !='' Begin
set @sql = @sql + N' and b2.part_no like ' '' + @part_no + '%'' '
End
If @part_nm !='' Begin
set @sql = @sql + N' and b2.part_nm_kor like ''' + @part_nm + '%'' '
End
If @brand_cd !='' Begin
set @sql = @sql + N' and b1.brand_cd = ''' + @brand_cd + ''' '
End
Exec sp_executesql @sql
위의 변수가 인식이 되지않습니다. + char(39) + 를 사용해서도 해봤지만 역시 먹히질 않구요,
문제되어 보이는 부분은 전혀 보이질 않는데 말이죠 ㅠㅠ
한수 알려주시면 감사하겠습니다....
Comment 1
-
풀내기vber
2014.02.19 10:10
자답.
어처구니 없는 실수이네요 죄송합니다.
null 처리 홑따음표만 썼네요, 그리고 상단에 -- 주석처리가 되서 당연히 쿼리문이 실행이 안됐던거구요..