테이블 이름이 변동되는 경우는 어쩔수 없이 동적 sql을 쓸수밖에 없는거 맞죠?
insert를 하는데 희한하게 문자열은 저장이 안되요.. 방법좀 알려주세요...
insert into Table(name) values('홍길동');
이건 잘되거든요. 그런데 테이블 이름을 변수로 받아오니까
query = 'insert into ' || Tablename || '(name) values(' || '홍길동' || ')';
execute statement query;
TableName는 전달 파라메타로 받아옵니다. 그런데 위 문장을 실행하면 에러가 나요..
당연히 name필드는 char형태이고요. 여러가지 값을 넣고 돌려본 결과 문자열을 넣을때는 에러가
난다는 결론을 얻게 되었어요.. 왜나하면 '123' 이렇게 넣거나 아니면 123 이런식으로 숫자를 넣어도
실행이 잘 된다는 겁니다. 숫자가 아닌 문자일경우에 에러가 나더라고요.. 변수로 값을 입력해도 마찬가지
입니다.님들도 한번 테스트 해보세요.
execute statement 문의 파이어버드 버그인가요 아니면 제가 모르는게 있는건가요. 고수님들 알려주시면
감사하겠습니다.
|