지적 감사드려요..
그건 고쳤구요, 고쳤어도 마찬가지네요..
글구.. 구문으로 봤을때...
첨에 select 한 값 (v_num) 은 확실히 0 이나오구,
그런 경우에... 아래의 insert 구문이 실행되어야 하는데,
조회해보면 아무 일도 없거든요....
ㅠ.ㅠ
그럼 다시한번 봐주시길 부탁 드릴께여..
관심 감사합니다.
요건 새로 수정한겁니당..
create procedure count_page(p_code char(2))
define v_num integer;
select count(num) into v_num from counter
where to_char(visit_date,'%m%d%Y') = to_char(current, '%m%d%Y') ;
if(v_num > 0) then{
update counter set num = num+1
where to_char(visit_date,'%m%d%Y') = to_char(current, '%m%d%Y')
and code=p_code;
}else{
insert into counter(p_code,visit_date,num)
values(p_code,current,1);
}
end if
end procedure;
>>sojins 님께서 쓰시길<<
::
:: >>바람 님께서 쓰시길<<
::
:: :: create procedure count_page(p_code char(2))
:: :: define v_num integer;
:: :: select count(num) into v_num from counter where visit_date=current;
:: :: if(v_num > 0) then{
:: :: update counter set num = num+1
:: :: where visit_date=current and code=p_code;
:: :: }else{
:: :: insert into counter(p_code,visit_date,num)
:: :: values(p_code,current,1);
:: :: }
:: :: end if
:: ::
:: :: end procedure;
:: ::
:: :: execute procedure count_page('11');
:: :: 위처럼 했는데요..
:: :: 정상적인 작동이안되네요.
:: :: 어디가문제인지.. 첨만들어본 프로시져인데, 도움 부탁드립니다.
:: :: 테이블은..
:: ::
:: :: create table counter(
:: :: p_code char(2),
:: :: visit_date date,
:: :: num integer
:: :: );
:: ::
:: ::
::
:: 다른 부분은... 확신할 수 없고요...
:: 일단
:: :: where visit_date=current and code=p_code;
:: 이부분에서... current는 연월일-시간-분-초 까지 리턴하죠.
:: 그러니까... 아마도...visit_date하고 같을리가 없겠죠...?
::
:: current : 2001-07-24 14:22:41.000
::
:: ^_^;
:: 방안은...
:: visit_date에서 수용해야하는 date의 범위를 먼저 정하고
:: (연월일-시분초까지 인지, 연월일-시분까지 인지)
:: 그다음... current형을 적당히 변형해서.. 사용해야 겠죠.
::
:: where to_char(visit_date,'%Y%m%d%H%S') = to_char(current, '%Y%m%d%H%S')
::
:: 이런 식으로 바꾼다면.. 아마.. 되겠죠..?
|