FETCH NEXT FROM perNoCursor INTO @formkey,@use_cnt
WHILE @@FETCH_STATUS = 0
begin
print(@formkey)
Set @i = 1
while (@i <= @use_cnt)
Begin
set @j = @i
set @strSQL = '
select
@insacode = or_insacode,
@insaname = ib_insa_name,
@jiwe_name = isnull((select ijw_detial from insa_jiwe Where ijw_code = ib_jiwe_code),'''') as ib_jiwe_name,
@jikg_name = isnull((select ij_detial from insa_jikg Where ij_code = ib_jikg_code),'''') as ib_jikg_name,
@saup_name = isnull((select isc_detial from insa_saup_code Where isc_code = ib_saup_code),'''') as ib_saup_name,
@team_name = isnull((select it_detial from insa_team Where it_code = ib_team_code),'''') as ib_team_name,
@part_name = isnull((select ip_detial from insa_position Where ip_code = ib_part_code),'''') as ib_part_name,'
SET @strSQL = @strSQL + '
@sDate = dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',1,12),''-'') as sDate,
@eDate = dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',13,12),''-'') as eDate,
@tot_min = datediff(mi,dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',1,12),''-''),dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',13,12),''-'')) as tot_min,
@tot_hour = convert(real,datediff(mi,dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',1,12),''-''),dbo.fn_DateTypeTrans_detail(substring(or_enforcedate'+@j+',13,12),''-'')))/ 60 as tot_hour,
@flag = or_flag '
SET @strSQL = @strSQL + '
from
WE_FORM_OFFRESULT A
inner join insa_basic B on B.ib_insa_code = A.or_insacode
inner join we_form_master C on A.form_key = C.form_key
where
C.form_kind = ''or'' and
C.fm_state = ''2'' and
A.form_key = '''+@formkey+''''
--print(@strSQL)
exec (@strSQL)
Set @i = @i + 1
End
FETCH NEXT FROM perNoCursor INTO @formkey,@use_cnt
END
CLOSE perNoCursor
DEALLOCATE perNoCursor
위에서 DECLARE @insacode.... 를 선언해 주었지만
스칼라 변수 "@insacode"을(를) 선언해야 합니다.
메시지 102, 수준 15, 상태 1, 줄 7
',' 근처의 구문이 잘못되었습니다.
메시지 102, 수준 15, 상태 1, 줄 8
',' 근처의 구문이 잘못되었습니다.
메시지 102, 수준 15, 상태 1, 줄 9
',' 근처의 구문이 잘못되었습니다.
메시지 102, 수준 15, 상태 1, 줄 10
',' 근처의 구문이 잘못되었습니다.
이런식으로 계속 오류가 나네요.. 어떻게 해야되는지... 부탁 드립니다.
@strSQL을 완성한 후 exec(@strSQL)을 하는 스크립트네요?
쉽게 설명해서 @strSQL의 내용을 다른 쿼리 창에 붙여 넣고 F5(실행)을 누르는 스크립트라고 보시면 됩니다.
근데 @strSQL 안에 있는 스크립트에는 @insacode를 선언한 부분이 없네요.
커서를 돌리기전에 @strSQL을 복사해서 다른 창에서 실행해보세요.