Oracle Q&A 게시판
오라클 질문과 답변 게시판 입니다. - 글이나 덧글 작성이 불가하며 검색용도로만 이용 가능합니다.
글 수 7,757
프로시저 내용 입니다
ALTER PROC [dbo].[threeMonthAfter_Delete_cdata]
AS
BEGIN
-- BEGIN TRAN
declare
@Sql varchar(4000)
,@strMonth varchar(6)
Set @strMonth = Replace(convert(varchar(7),DateAdd("m",-4,getdate()),120),"-","")
Set @Sql = "if not exists (select * from dbo.sysobjects where name = ""cdata_"+ @strMonth +""")
begin
CREATE TABLE [dbo].[cdata_"+ @strMonth +"] (
[oidNo] [int] NOT NULL ,
[seq] [int] NOT NULL ,
[comid] [int] NOT NULL ,
[siteid] [int] NULL ,
[keyid] [int] NULL ,
[skind] [int] NULL ,
[regdate] [datetime] NOT NULL ,
[nowip] [varchar] (15) COLLATE Korean_Wansung_CI_AS NULL ,
[uncd] [varchar] (20) COLLATE Korean_Wansung_CI_AS NULL ,
[usecode] [varchar] (1) COLLATE Korean_Wansung_CI_AS NOT NULL
) ON [PRIMARY]
end"
Exec(@Sql)
Set @Sql = "
declare
@strMinDate varchar(20)
Set @strMinDate = (Select dateadd(day,-1,min(regdate)) from cdata)
while(@strMinDate < getdate() -90)
begin
insert into [cdata_"+ @strMonth +"]
(
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
)
select
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
from cdata where regdate < @strMinDate
delete from cdata where regdate < @strMinDate
set @strMinDate = dateadd(day,1,@strMinDate)
end"
exec @Sql
/*
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
*/
END
90일이 지난 데이터는 백업 테이블에 백업후 삭제 하려는 내용입니다
그런데 프로시저 뭐가 잘못된건지 실행 시키면 에러가 나는데 무슨 에러인지를 못찾겠네요
다른 방법이 있으면 좀 알려주세요..;;
==================== 에러 내용
메시지 203, 수준 16, 상태 2, 프로시저 threeMonthAfter_Delete_cdata, 줄 70
"
declare
@strMinDate varchar(20)
Set @strMinDate = (Select dateadd(day,-1,min(regdate)) from cdata)
while(@strMinDate < getdate() -90)
begin
insert into [cdata_200906]
(
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
)
select
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
...
ALTER PROC [dbo].[threeMonthAfter_Delete_cdata]
AS
BEGIN
-- BEGIN TRAN
declare
@Sql varchar(4000)
,@strMonth varchar(6)
Set @strMonth = Replace(convert(varchar(7),DateAdd("m",-4,getdate()),120),"-","")
Set @Sql = "if not exists (select * from dbo.sysobjects where name = ""cdata_"+ @strMonth +""")
begin
CREATE TABLE [dbo].[cdata_"+ @strMonth +"] (
[oidNo] [int] NOT NULL ,
[seq] [int] NOT NULL ,
[comid] [int] NOT NULL ,
[siteid] [int] NULL ,
[keyid] [int] NULL ,
[skind] [int] NULL ,
[regdate] [datetime] NOT NULL ,
[nowip] [varchar] (15) COLLATE Korean_Wansung_CI_AS NULL ,
[uncd] [varchar] (20) COLLATE Korean_Wansung_CI_AS NULL ,
[usecode] [varchar] (1) COLLATE Korean_Wansung_CI_AS NOT NULL
) ON [PRIMARY]
end"
Exec(@Sql)
Set @Sql = "
declare
@strMinDate varchar(20)
Set @strMinDate = (Select dateadd(day,-1,min(regdate)) from cdata)
while(@strMinDate < getdate() -90)
begin
insert into [cdata_"+ @strMonth +"]
(
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
)
select
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
from cdata where regdate < @strMinDate
delete from cdata where regdate < @strMinDate
set @strMinDate = dateadd(day,1,@strMinDate)
end"
exec @Sql
/*
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
*/
END
90일이 지난 데이터는 백업 테이블에 백업후 삭제 하려는 내용입니다
그런데 프로시저 뭐가 잘못된건지 실행 시키면 에러가 나는데 무슨 에러인지를 못찾겠네요
다른 방법이 있으면 좀 알려주세요..;;
==================== 에러 내용
메시지 203, 수준 16, 상태 2, 프로시저 threeMonthAfter_Delete_cdata, 줄 70
"
declare
@strMinDate varchar(20)
Set @strMinDate = (Select dateadd(day,-1,min(regdate)) from cdata)
while(@strMinDate < getdate() -90)
begin
insert into [cdata_200906]
(
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
,usecode
)
select
oidNo
,seq
,comid
,siteid
,keyid
,skind
,regdate
,nowip
,uncd
...

