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
운영게시판
최근게시물
PostgreSQL Q&A 8790 게시물 읽기
No. 8790
embedded sql from Oracle to PostgreSQL
작성자
이상필(starphil)
작성일
2011-03-09 18:49
조회수
9,920

안녕하세요

제가 Solaris&Oracle 용 데몬소스를 Linux&PostgreSQL 로 변경하는 플젝을 하고 있습니다.

PostgreSQL 구문이 Oracle 과 비슷해보여 어렵지 않을것을 예상했는데 지금은 OTL... ㅜㅜ

일단 여기저기 찾아봐서 .pc 로 되어 있던 Oracle embedded 파일 확장자를 .pgc 로 변경후에

ecpg -t 컴파일로 .c 파일까지 만들었습니다.

여기까진 소스를 조금 수정해서 어렵지 않게 왔는데

g++ 컴파일러로 PostgreSQL 헤더와 lib를 include 하고

기타 flag(-lpgport -lz -lreadline -ltermcap -lcrypt -lxml2 -lresolv -lnsl -ldl -lm -lbsd -lecpg -lpq)와

원소스 라이브러리를 포함하여 컴파일하는데

expected primary-expression before struct 와 같은 에러가

DECLARE 선언부의 typedef struct 구조체에 varchar 타입으로 선언된 변수가 사용되는 곳에서 발생했습니다.

그래서 varchar 타입을 char 로 변경하니 expected 에러는 안나고 varchar 타입속성(arr, len) 에 따른 에러가 나오길래

char 타입의 임시변수에 varchar 타입 변수를 sprintf() 를 사용하여 넘기니까 에러가 발생하지 않았습니다.

쿼리 where 조건절에 값만 들어가면 된다고 생각해서 위와 같은 꼼수로 넘어가려고 했는데

FETCH(SELECT) ~ INTO 쿼리에 INTO 절 변수에 long 타입 변수가 사용되는 부분에서 발생되는 excepted 에러가 조치가 안되서

꼼수로도 해결이 안되고 있는 상황입니다.

EXEC SQL BEGIN DECLARE SECTION;

typedef struct {
        varchar   calllist_keep_term_ymd [14];
        long cti_seq_dt;
} CONFIG_T;

CONFIG_T  sv_config;

EXEC SQL END DECLARE SECTION;

구조체는 위와 같이 선언하고 아래와 같은 쿼리에서 사용했는데

EXEC SQL FETCH cursor INTO :sv_config.calllist_keep_term_ymd;

EXEC SQL FETCH cursor INTO :sv_config.cti_seq_dt;

어떠 부분이 문제가 되는지 확인이 안되고 있습니다.

http://www.enterprisedb.com/docs/en/8.4/pg/ecpg.html 에 보니까 ecpg 컴파일이 원래 C와 C++ 에서 동작은 하지만

아직 모든 C++ 구조를 해석하진 못한다고 되어있는데 이거와도 연관이 있는지도 모르겠네요.

혹시 저와 비슷한 경우를 경험하신분이나 다른 부분에 있어 도움이 될만한 분들의 조언 부탁 드리겠습니다.

 감사합니다.

[Top]
No.
제목
작성자
작성일
조회
8793쿼리문좀 봐주세요 [1]
이기자
2011-03-17
8036
8792질의문 질문 드립니다. [1]
권기혁
2011-03-14
7797
8791Win용 PostgreSQL 복구문제...
이기자
2011-03-10
8187
8790embedded sql from Oracle to PostgreSQL
이상필
2011-03-09
9920
8789phpPgAdmin 에 대해서 [1]
souler
2011-03-09
7897
8786복구 관련 질문드립니다. [1]
조성웅
2011-03-02
7617
8785복합형 타입을 insert 할때
부들
2011-03-01
7827
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다