database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 4370 게시물 읽기
No. 4370
Sybase Web page 처리 문의 드립니다.
작성자
안진영
작성일
2013-05-29 19:25
조회수
5,074

현재 Sybase 버전은 Adaptive Server Enterprise/12.5.3/EBF 13055 ESD#5/P/Sun_svr4/OS 5.8/ase1253/1939/64-bit/FBO/Tue Dec  6 09:13:20 2005

입니다.

회사에서 어쩔수 없이 Sybase를 사용하는 싸이트를 떠넘겨 받아 울며 겨자 먹기로 작업을 하는데 잘 되질 않습니다....ㅡ.ㅜ;

 

문제는 다름이 아니고 페이징 처리를 하고 결과 데이터를 보면 총 164 페이지가 있고 67 페이지까지 이동시 해당 데이터가 잘 나옵니다.

하지만 68 페이지 이후 부터는 올바른 데이터를 표시하지 못하고 있습니다.

소스상의 오류라고 보기에는 의아한게 그럼 이전 페이지들에서는 왜 문제가 발생하지 않은것인지 갑갑하기만 합니다...ㅜ.ㅜ;

아래늬 해당 쿼리를 범위를 설정하여 따로 실행하면 데이터는 보이고 있습니다.

하지만 웹상에서는 68페이지는 10건 뿌리는 중에 2건 이후 페이지는 모두 데이터를 가져오지 못하고 있습니다.

 

JSP 와 iBatis 로 구성 되어져 있으며 현재 사용하고 있는 쿼리는

SELECT RECOM_CD, MAKE_YMD, SEQ, ROWNUM=identity(8) INTO ##T
  FROM KBAH09TB
 WHERE RECOM_CD = '2043'
   AND RTRIM(IPGUM_CODE) IS NULL
   AND CANDI_YMDT IS NULL
 ORDER BY MAKE_YMD ASC, SEQ ASC
 
SELECT K.MAKE_YMD, K.SEQ, K.ENG_NM, K.RESI_NO1, K.NATIONALITY_CD, N.SUB_CLASS_ENG_NM AS NATIONALITY_NM,
    K.JUDG_YMD, RTRIM(K.RECOM_CD) AS RECOM_CD, K.IPGUM_CODE, K.APPL_POOM_DAN_NO, K.APPL_POOM_DAN_FG,
    (CASE WHEN RTRIM(K.RESI_NO2) IS NULL OR SUBSTRING(K.RESI_NO2, 1, 1) = '1' OR SUBSTRING(K.RESI_NO2, 1, 1) = '2' THEN '19' ELSE '20' END) + K.RESI_NO1 AS RESI_NO3,
    (CASE WHEN K.APPL_POOM_DAN_FG = '001' THEN 'POOM' ELSE 'DAN' END) AS APPL_POOM_DAN_FG_NM,
       (CASE WHEN (SELECT COUNT(1) FROM KEAG05TB J WHERE J.RECOM_CD = K.RECOM_CD AND CONVERT(CHAR, GETDATE(), 112) BETWEEN J.START_YMD AND J.END_YMD) > 0
              THEN (SELECT CASE WHEN K.APPL_POOM_DAN_FG = '001' AND K.APPL_POOM_DAN_NO = '1' THEN POOM1
                                WHEN K.APPL_POOM_DAN_FG = '001' AND K.APPL_POOM_DAN_NO = '2' THEN POOM2
                                WHEN K.APPL_POOM_DAN_FG = '001' AND K.APPL_POOM_DAN_NO = '3' THEN POOM3
                                WHEN K.APPL_POOM_DAN_FG = '001' AND K.APPL_POOM_DAN_NO = '4' THEN POOM4
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '1' THEN DAN1
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '2' THEN DAN2
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '3' THEN DAN3
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '4' THEN DAN4
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '5' THEN DAN5
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '6' THEN DAN6
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '7' THEN DAN7
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '8' THEN DAN8
                                WHEN K.APPL_POOM_DAN_FG = '002' AND K.APPL_POOM_DAN_NO = '9' THEN DAN9
                             ELSE 0 END
                     FROM KEAG05TB M
                    WHERE M.RECOM_CD = K.RECOM_CD
                      AND CONVERT(CHAR, GETDATE(), 112) BETWEEN M.START_YMD AND M.END_YMD
                   )
         ELSE (
            SELECT (CASE WHEN D.RECOM_GB = '001' THEN HYUP_DANGA ELSE DANGA END)
              FROM KEAG01TB_NEW A, GDP_REGION B, KMS_USERTB_G C, KAAA04TB D
             WHERE A.REGION_CD = B.REGION_CD
               AND B.NATION_CD = D.NATION_CD
               AND D.RECOM_CD = C.RECOM_CD
               AND C.RECOM_CD = '2043'
               AND A.HY_CD = '002'
               AND A.POOMDAN_FG = K.APPL_POOM_DAN_FG
               AND A.POOMDAN_NUM = K.APPL_POOM_DAN_NO
               AND CONVERT(CHAR, GETDATE(), 112) BETWEEN A.START_YMD AND A.END_YMD
               AND C.USE_YN = 'Y'
               AND C.RECOM_FG = 'Y'
         ) END
       ) AS DANGA
 FROM ##T T, KBAH09TB K, (SELECT SUB_CLASS_CD, SUB_CLASS_ENG_NM FROM KEAH02TB WHERE SUPER_CLASS_CD = 'D' AND MID_CLASS_CD = '29' AND SUB_CLASS_CD > '000') N
 WHERE (T.RECOM_CD = K.RECOM_CD AND T.MAKE_YMD = K.MAKE_YMD AND T.SEQ = K.SEQ)
   AND K.NATIONALITY_CD = N.SUB_CLASS_CD
   AND T.ROWNUM BETWEEN CONVERT(INT, '1') AND CONVERT(INT, '10')
 ORDER BY T.ROWNUM ASC
 
 DROP TABLE ##T

 

Sybase를 이번에 처음 접하는거라 이리저리 검색을 해봐도 어떤게 맞는지 알수가 없습니다.....

많은 고수님들의 가르침 부탁 드립니다.....

 

 

이 글에 대한 댓글이 총 3건 있습니다.

한번 임시테이블 사용하지 않고 해보시는게 어떤지요.

해답이 될듯한데요

지나가는나그네님이 2013-06-18 15:29에 작성한 댓글입니다. Edit

하아 저도 같은 서버에서 같은 현상이라 죽겠네요.. ㅠ

도대체 원인이 뭔지 모르겠습니다.

박동현(yd1988)님이 2013-07-08 10:44에 작성한 댓글입니다.

 page size 때문일듯

Eric(nautilus)님이 2015-06-29 12:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4373text 필드에 대한 select 문의 건 입니다~ [1]
오리온
2013-08-28
4227
4372IQ에서 BCP를 이용해서 탑재시 에러가발생합니다.ㅠ [1]
Lim
2013-08-28
4453
4371C# 으로 배포할때 DB접속이 안됩니다.
강창휘
2013-07-16
4503
4370Sybase Web page 처리 문의 드립니다. [3]
안진영
2013-05-29
5074
4368Sybase IQ 15.4 Multiplex 와 Tomcat 연결
김민석
2013-04-22
4447
4367테이블을 일괄적으로 생성할려면 어떻게 해야하나요 ??? [1]
롱다리
2013-03-19
4327
4366프로시져작성
spy
2013-03-13
4626
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.057초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다