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 1318 게시물 읽기
No. 1318
고수님의 손길을 부탁드립니다.
작성자
spirit
작성일
2005-10-11 10:26
조회수
4,199

아래와 같은 프로시저를 만들어서 썼는데, DB관리자가 프로시저는 안된다고 합니다. ㅜ.ㅜ;
일반쿼리로 바꿔야 하는데, 한큐에 할 수 있는 방법이 없을까요?
고수님의 손길을 부탁드립니다.

 

create proc ctl_proc_newsletter
@page int = NULL, @rowcount int = null, @sFlag int = null, @sValue char(2) = null
as
declare @selcount int, @startrownum int, @endrownum int

select @selcount = @rowcount * @page
select @startrownum = (@page - 1) * @rowcount + 1
select @endrownum = @page * @rowcount

SET ROWCOUNT @selcount

SELECT rownum=identity(4), writeno, title,content,regdate
INTO #ctl_temp FROM ctl_newsletter
order by writeno desc

 

SET ROWCOUNT 0
select writeno, title,content,regdate
from #ctl_temp
where rownum >= @startrownum and rownum <= @endrownum
drop table #ctl_temp
;

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

프로시져가 왜 안될까요?

 

그게 성능이 더 좋은데...

 

 

다만 이 프로시져는

 

select @selcount = @rowcount * @page

 

SET ROWCOUNT @selcount

SELECT rownum=identity(4), writeno, title,content,regdate
INTO #ctl_temp FROM ctl_newsletter

 

 

이래서...안된다고 한게 아닐까요....

 

즉 @selcount는 한 1000page있고 rowcount가 20개면

 

20000건....많죠..

 

이걸 유저별로 계속..temp table을 만들면.... 안되겠죠...

 

이걸 수정하라는 말 같은데요...그냥 뿌려 주면 될것 같은데(굳이 temp table안써도..)

 

 

 

하여간 만드시려면...

 

set rowcount @selcout하지마시고..현재 보여줄것 한 10page정도 200건정도 읽고

 

11page보려고 하면 400건정도 가지고 와서 앞을 200건 지우고...

 

뭐 이런식으로 temp table을 만드셔야 할것 같은데요...

지연님이 2005-10-13 11:14에 작성한 댓글입니다. Edit

아래와 같이 만들어서 쿼리로 날려보았는데.. 에러가 납니다.

에러내용은 아래와 같습니다.

 

NO CS_Command pointer passed to function : DESCRIBE

 

SELECT rownum=identity(4), writeno, title,content,regdate INTO #ctl_temp FROM ctl_newsletter

Contiune?

 

Sybase 문법을 몰라서 그러는건지.. 끝에 " ; " 마크를 꼭 해야하는건지 헷갈리네요..

고수님께서 손을 조그만 봐서 돌아가게끔 해 주시면 정말 감사하겠습니다.

 

set rowcount 20;
SELECT rownum=identity(4), writeno, title,content,regdate
INTO #ctl_temp FROM ctl_newsletter   ;
SET ROWCOUNT 0  ;

select writeno, title,content,regdate
from #ctl_temp  ;
drop table #ctl_temp  ;

 

spirit님이 2005-10-14 11:48에 작성한 댓글입니다.
이 댓글은 2005-10-14 11:53에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1321RE : ASE 12.5 에서 MSSQL의 sp_executesql 와 같은 프로시저가 있는지요? [1]
김지수
2005-10-11
3217
1320한가지 질문이요..
장용욱
2005-10-11
2969
1319SYBASE IQ 테이블 사이즈 구하기 [1]
이경우
2005-10-11
8535
1318고수님의 손길을 부탁드립니다. [2]
spirit
2005-10-11
4199
1317프로필러가 있는지요? [1]
김지수
2005-10-10
3002
1316ASE 12.5 에서 MSSQL의 sp_executesql 와 같은 프로시저가 있는지요? [1]
김지수
2005-10-10
3108
1315sybae SDK를 이용하여 c로 asiq에 연결할때? [1]
초보
2005-10-07
2901
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다