2012-03-09 2 views
1

내 build.xml로 SQL ant taks에 문제가 있습니다. ant에서 태스크를 사용하고 열 이름이 "rem"인 테이블을 만들지 못합니다. 나는 이것이 오라클에서 예약어라고 생각합니다. 그러나이 문제와 관련하여 두 가지 질문이 있습니다.Sql ant task 대 sqlplus : reserver word "rem"

  1. 이 문제는 sqlplus에서 발생하지 않습니다. 즉 : 열 이름이 "rem"인 테이블을 만들 수 있습니다.

  2. 오라클이 아닌 예약어에 대해 알아야합니까? 예를 들면 : "go"in mysql?

당신을 잘 알고 있습니다.

+2

SQL의 대부분은 필드 이름을 큰 따옴표 나 역 따옴표로 묶을 것을 암시합니다. 그러면 거의 모든 필드 이름을 가질 수 있습니다. 하지만 일반적으로 가능한 모든 가능한 예약어/키워드를 피해야합니다. 다른 사람들이 혼란을 피하기보다는 * SQL Engine *에 신경 쓰지 마십시오. – MatBailie

+1

Oracle에서 열 이름 등을 따옴표로 묶을 때 조심하십시오 ... 오라클은 따옴표로 묶을 때 대소 문자를 혼용 할 수 있습니다 (따옴표로 묶을 수는 없지만). 그 이름을 인용 할 때는 따옴표를 사용해야합니다. 예 : 'xyzzy'테이블 만들기 - SELECT * FROM "xyzzy" –

답변

1

을보십시오.

그러나, 먼저 두 번째 점을 해결하기 위해 :

cagcowboy's answer 어떻게 난 단지 당신이을하지 것을 요청할 수 있습니다 문제를 해결하는 방법을 설명하는 동안.

나는 무언가를 큰 따옴표로 묶어야 만하며, 은 어디서나 이것을 기억해야합니다.. 일부 UI (e.g. Toad)는 특수 옵션을 초기화해야합니다.

효과적으로 많은 번거 로움이 있으며 DemsDavd Faber은 대단히 혼란 스럽습니다.

덧붙여 말하자면 go은 오라클에서 예약 된 것으로 보입니다. 열 이름 때문에이 작품으로하고 rem있는 테이블을 생성 - onlySQL*Plus -

는 첫 번째 글 머리 rem 실제로 예약 된 오라클 단어하지 않습니다 해결하기 위해. 당신의 구체적인 문제는 개미와 관련이 있어야합니다.

0

... 따옴표로 열을 가하고

"REM"나는 당신이 RDBMS를 모두 사용하여 의도하지 않는 MySQL은 예약어에 대해 걱정할 필요가 있다고 생각하지 않습니다