programing

ORA-00920: 잘못된 관계 연산자

subpage 2023. 10. 21. 10:28
반응형

ORA-00920: 잘못된 관계 연산자

데이터베이스에서 지정한 날짜보다 늦은 정보를 끌어오려고 합니다.날짜가 홀수 형식임을 미리 알아두어야 합니다.YYYYMMDDHH24MISS##어디에##제 질문에 쓸모없는 것을 정의하는 두 글자 문자열입니다.그래서 사용하고 있습니다.substr그들을 제거하기 위해서 입니다.

아래의 제 쿼리는 다음과 같은 오류를 던지는데, 그 이유를 알 수 없습니다.

[오류 코드:920, SQL 상태: 42000] ORA-00920: 잘못된 관계 연산자

내 쿼리:

SELECT *
  FROM table_name
 WHERE to_date(substr(COLUMN_NAME,1,14), 'YYYYMMDDHH24MISS')) >=
       to_date('MIN_DATE', 'YYYYMMDDHH24MISS')

날짜가 정확하게 정의되어 있는지 확인했고, 정확하게 정의되어 있습니다.

내가 사용한 용도의 예MIN_DATE다음과 같습니다.20140101000000

첫 번째 to_date 끝에 추가 괄호가 있습니다.

비교 작업이 누락된 경우 Oracle에서는 다음과 같은 오류가 발생합니다.=-- 존 메일렛이 이미 언급했듯이

제 관심사는 두번째 부분입니다.where조항:

where to_date(substr(COLUMN_NAME, 1, 14), 'YYYYMMDDHH24MISS') >=
                  to_date('MIN_DATE', 'YYYYMMDDHH24MISS')

당신은 가지고 있다MIN_DATE인용구 하나로이것은 8개의 글자로 시작하는 문자열로 해석됩니다.'M'마지막으로 끝납니다.'E'. 이는 변수로 해석되지 않습니다.아마도 당신의 말은:

where to_date(substr(COLUMN_NAME, 1, 14), 'YYYYMMDDHH24MISS') >=
                  to_date(MIN_DATE, 'YYYYMMDDHH24MISS')

문자열 및 날짜 상수에는 작은 따옴표만 사용해야 합니다.

날짜를 변환할 필요 없이 이 비교를 수행할 수 있어야 한다는 점을 덧붙이고 싶습니다.

where left(COLUMN_NAME, 14) = MIN_DATE

언급URL : https://stackoverflow.com/questions/24961804/ora-00920-invalid-relational-operator

반응형