oracle Pro C++ 프로그래밍 질문드립니다.
글쓴이: hopeful1213 / 작성시간: 금, 2006/07/07 - 5:14오후
EXEC SQL alter table aa5 add partition data4 values (:timeValue);
위와 같은 형태로 DDL 문장을 emb SQL로 실행하려고 합니다.
그런데
++: Release 9.2.0.1.0 - Production on 금 Jul 7 16:07:15 2006 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 시스템 기본 옵션 값이 가지고 온 곳: D:\oracle\ora92\precomp\admin\pcscfg.cfg 파서 오류가 줄 417, 열 59, 파일 C:\emboracleTest\sample.pc에 있습니다:라인 417, 열 59에 C:\emboracleTest\sample.pc 파일에서 오류가 생겼습니다 EXEC SQL alter table aa5 add partition data4 val ues (:timeValue); ..........................................................1 PCC-S-02206, 호스트 변수들은 DDL 문장의 범위 안에 허용되지 않습니다 라인 0, 열 0에 C:\emboracleTest\sample.pc 파일에서 오류가 생겼습니다
이런 메세지가 뜨면서 오류 처리 되네요.
오류 메세지는 DDL 명령어 내에서는 호스트 변수를 넣지 못한다고 하는 것 같은데 저는 반드시
호스트 변수를 사용해야 합니다. (insert하면서 테이블에 파티션을 추가할 것이기 때문이죠)
어떻게 하면 이문제를 해결할 수 있을지요? 고수님들 도와주세요.
Forums:
SQL 문에서 DDL문장 안에 호스트 변수를 사용할수 없습니다
:timevalue 와 같은 호스트 변수를 alter create drop 같은 ddl 문에는 사용할수 없습니다.
프로그램에서 이용하시려면 sprintf(sql, "alter ~~~ '%s'", timevalue)와 같이 dynamic sql로 사용하시면 될겁니다.
댓글 달기