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
운영게시판
최근게시물
Oracle Q&A 14863 게시물 읽기
No. 14863
오라클9i에서 Analytic Function 사용한 ProC파일 컴파일 에러
작성자
박종구(fhwlr)
작성일
2003-07-07 17:00
조회수
2,813

오라클 버젼 9.0.1 사용중인데여...

전에 9i 부터는 ProC와 PL/SQL에서 Analytic Function 사용할수 있다고

들은거 같은데....

안되네여... 계속 Analytic Function 절에.. 컴파일 에러

 

오라클9i 관련자료를 알고계시거나... 아시는 분은 답변좀 부탁드립니다.

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

에러내역이나 코드를 올려주시지요..^^;;

nagne님이 2003-07-08 10:23에 작성한 댓글입니다.

에러코드야.. 당연 Syntex Error져...

 

 

Syntax error at line 42, column 35, file TEST.pc:

Error at line 42, column 35 in file TEST.pc

SELECT ID, COUNT(*) OVER () CNT

..................................1

PCC-S-02201, Encountered the symbol "(" when expecting one of the following:

박종구님이 2003-07-08 11:31에 작성한 댓글입니다.

관련자료 :

 

Problem Description -------------------

Trying to use new sql syntax features introduced in 9i fails in pro*c programs and getting the corresponding precompilation errors:

 

------- EXEC SQL DECLARE c1 CURSOR FOR select job,SUM(CASE WHEN job='CLERK' then sal else sal*10 end) from emp group by job; ------- $ proc iname=programname.pc PCC-S-02201, Encountered the symbol "WHEN" when expecting one of the following:( ) * + - / . @ | at, day, hour, minute, month, second, year,

 

Solution Description --------------------

There are two solutions: 1- use dynamic sql methods; following is an example with dynamic sql method 3 (see pro*c dynamic sql samples: sample6.pc sample7.pc and sample8.pc from $ORACLE_HOME/precomp/demo/proc) ------------------- /* in your pc program */ VARCHAR dynstmt[80]; ... ... ... void main() { ... ... strcpy((char *)dynstmt.arr, "select job,SUM(CASE WHEN job='CLERK' then sal else sal*10 end) from emp group by job"); dynstmt.len = (unsigned short)strlen((char *)dynstmt.arr); EXEC SQL PREPARE S FROM :dynstmt; EXEC SQL DECLARE C CURSOR FOR S; ... ... ... } ------------------- 2- Apply Pro*c patchset 9.0.1.3 or upgrade to 9.2.0.1 or higher

 

제가 맞게 찾았는지 모르지만..훔..저도 pro*c는

잘 하는 편이 아니라..;; 암튼..제가 해보기로

PL/SQL 에서는 analytic function 아주 잘 돌아가구요

pro*c 에서 위에 자료에 의하면

Dynamic sql 을 이용해서 하시거나

pro*c 패치셋(9.0.1.3) 을 적용시켜야 할것 같습니다.

 

훔냐냐..

nagne님이 2003-07-08 12:14에 작성한 댓글입니다.

감사함다.. 도움이 마니 되었슴다..

 

그런데 지금 사용중인 오라클의 정확한 버젼이

 

9.0.1.3 이고.. ProC도 컴파일시 확인해보면

 

Pro*C/C++: Release 9.0.1.3.0 이라고 나오는데..

 

9.0.1.3.0 버젼에서 사용이 안되니....

 

Dynamic SQL을 사용하지 않는다면

 

오라클을 9.2.0.1로 올리는 방법밖에 없다는.....

박종구님이 2003-07-08 12:59에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
14867[질문]오라클8i에 데이터 insert시 이상한현상 [1]
김지호
2003-07-08
1098
14866MSSQL의 임시테이블(#temp)같은게 오라클에는 없나요?... 답답하네요..ㅠㅠ [1]
드기
2003-07-08
3379
14864[질문] long타입으로 지정한 필드의 길이는... [1]
손동언
2003-07-07
1703
14863오라클9i에서 Analytic Function 사용한 ProC파일 컴파일 에러 [4]
박종구
2003-07-07
2813
14862프로시져 안에서 임시테이블을 어떻게 만들어요?? [1]
김만수
2003-07-07
10205
14861[질문] 오라클 스토어드 프로시저 [1]
신충수
2003-07-07
3562
14865┕>Re: [질문] 오라클 스토어드 프로시저
김만수
2003-07-08 08:25:37
1881
14870┕>Re: [질문] 오라클 스토어드 프로시저
신충수
2003-07-08 20:44:09
3956
14860도움이 필요합니다. [3]
이정호
2003-07-07
2292
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다