Dynamic Query에서 merge into 사용여부 0 4 4,072

by 채노 [SQL Query] dynamic merge into [2014.07.26 16:56:31]


안녕하세요,

현재 Dynamic Query를 사용하여 프로그램을 작성하고 있습니다...

다른 쿼리들은 Dynamic Query가 정상 수행되는데요..

Merge Into 작성한 부분만 컴파일 시 에러가 발생하네요;;;

EXEC SQL
SELECT * 
FROM DUAL;

식으로 작성한 부분은 문제 없으나...

EXEC SQL
MERGE INTO TABLE_A
USING DUAL
ON ( ... )
WHEN MATCHED THEN
UPDATE SET
...
;

과 같이 MERGE INTO 사용한 부분이 자꾸 에러가 발생하네요..

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

for, register, at , ....

 

다이나믹으로는 merge into를 사용할 수 없는건지요???

부디 답변 부탁 드립니다^^

 

감사합니다~

by 제임스 [2014.07.27 00:29:12]

위의 문장은 다이나믹 쿼리가 아닌데요.. static 이여서 컴파일시 오류낫을겁니다.

다이나믹쿼리로 변경하세요..  일반적을 pro*c 안에서 다이나믹이라하면  sql문장을  "  " 따옴표형태로 묶어서 변수에 담아서 표현을 합니다. 그렇게하면 컴파일시 오류가 안날거에요..


by 채노 [2014.07.28 09:04:40]

흠... 제가 잘 못 적었네요... 다이나믹이 아니고 스태틱으로 구현했습니다.... ㅠㅠ

저 문장대로 스태틱으로는 merge into를 사용할 수 없는건가요?? ^^;;;


by 마농 [2014.07.28 09:27:01]

Pro*C 프리컴파일러의 버전이 낮아서 Merge 를 인지 하지 못하는 것입니다.

static 은 프리컴파일을 통과하지 못하죠.

dynamic 은 프리컴파일 과정이 없으니 통과가 됩니다.


by 채노 [2014.07.28 10:05:44]

흠... 제임스님, 마농님 답변 감사드립니다.

다이나믹으로 변경해야겠네요 ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입