현상
top n 쿼리 수행 시 TBR-8006: Missing FROM keyword. 에러코드가 출력되며 해당 쿼리가 수행되지 않는 현상이 발생하였습니다.
재현 시나리오
SQL> create table t149894 (a number);
SQL> insert into t149894 values(1);
SQL> insert into t149894 values(2);
SQL> insert into t149894 values(3);
SQL> commit;
SQL> select top 2 a from t149894;
TBR-8006: Missing FROM keyword.
at line 1, column 12 of null:
select top 2 a from t149894
SQL
복사
원인
Select 시 출력되는 row 개수 제한 위한 top n 문법 추가한 ‘FS02PS_149894l 패치’가 해당 바이너리에 반영되어있지 않아 top n 문법 미지원하여 해당 에러가 발생하였습니다.
해결
패치를 적용해 해결합니다. (적용패치: 149894l )
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
top-N 쿼리 수행을 위해서는 149894 패치가 적용된 바이너리여야 합니다.
패치 적용 후 정상 동작하는지 확인합니다.
SQL> select top 2 a from t149894;
A
1
2
2 rows selected.
SQL
복사
참고
아래와 같이 쿼리 수정하여 임시 우회 가능합니다.
SQL> select a from t149894 order by a offset 0 rows fetch next 2 rows only;
A
1
2
2 rows selected.
SQL
복사
[ OFFSET offset { ROW | ROWS } ]
[ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ]
{ ROW | ROWS } { ONLY | WITH TIES } ]
•
OFFSET N : 건너뛸 행의 개수를 지정합니다.
•
FETCH : 반환할 행의 개수 또는 백분율 지정합니다.
•
ONLY : 지정된 행의 개수나 백분율만큼만 행을 반환합니다.
•
WITH TIES : 마지막 행에 대한 동순위 포함해서 반환합니다.