[oracle] Oracle에서 예약어를 어떻게 피할 수 있습니까?

TSQL에서는 Select [table] from tablename“table”이라는 열을 선택하는 것과 같은 것을 사용할 수 있습니다 .

오라클의 예약어에 대해서는 어떻게해야합니까?

편집 : 대괄호, 큰 따옴표, 작은 따옴표 및 백 따옴표를 시도했지만 작동하지 않습니다 …

더 명확히하기 위해 누군가가 comment라는 열을 가지고 있습니다. 이것은 예약어이므로 오라클은 쿼리를 파싱 할 때 실패로 선택하려고 노력하고 있습니다. tablename에서 “comment”를 선택했지만 작동하지 않았습니다. 사건을 확인하고 다시 올게요



답변

빠른 검색에서, 오라클은 (큰 따옴표를 사용하는 표시 ""table") 분명히 올바른 경우 필요 사람이 세트의 호환성을 위해 큰 따옴표를 사용하는 경우를 제외하고 사용한다 (`)로, MySQL의 기본값을 관심에 대해 -whereas을.


답변

오라클은 일반적으로 SQL 문에서 식별자 이름을 구분하기 위해 큰 따옴표를 요구합니다. 예 :

SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';

그러나 큰 따옴표를 생략하면 은혜롭게 식별자를 대문자로 자동 변환합니다.

SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';

내부적으로 다음과 같이 변환됩니다.

SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';


답변

키워드를 열 이름 중 하나로 사용했을 때 큰 따옴표는 oracle에서 작동했습니다.

예 :

select t."size" from table t 


답변

Oracle은 큰 따옴표를 사용하지만 “TABLE”과 같이 개체 이름을 대문자로 입력해야합니다. 큰 따옴표없이 객체를 생성하는 경우 기본적으로

CREATE TABLE table AS ...

오라클은 객체를 대문자 로 만들 것 입니다. 그러나 인용 부호를 사용하지 않으면 참조는 대소 문자를 구분하지 않습니다!


답변

TABLEOracle에서 예약 했기 때문에 열의 이름을 다른 이름으로 바꿔야합니다 .

Oracle보기에서 Oracle의 예약어를 모두 볼 수 있습니다 V$RESERVED_WORDS.


답변