두 카탈로그의 테이블을 UNION ALL 로 묶는 쿼리가 mismatched input 'union' expecting EOF 로 실패한다.
select * from ora_01.schema.tbl1 limit 10
union all
select * from ora_02.schema.tbl2 limit 10;
두 가지가 겹친다. 첫째, schema 는 Trino 예약어라 스키마 이름으로 쓰려면 큰따옴표로 감싸야 한다. 둘째, LIMIT 은 개별 SELECT 가 아니라 전체 쿼리 끝에 붙는 절이라, 첫 SELECT 뒤에 LIMIT 10 이 오면 파서가 거기서 쿼리가 끝났다고 보고 뒤따르는 UNION ALL 을 받아들이지 않는다.
각 SELECT 를 괄호로 감싸거나 서브쿼리로 만든다.
(SELECT * FROM ora_01."schema".tbl1 LIMIT 10)
UNION ALL
(SELECT * FROM ora_02."schema".tbl2 LIMIT 10);
SELECT * FROM (SELECT * FROM ora_01."schema".tbl1 LIMIT 10) t1
UNION ALL
SELECT * FROM (SELECT * FROM ora_02."schema".tbl2 LIMIT 10) t2;
예약어가 스키마·테이블·컬럼 이름에 섞여 있으면 같은 오류가 나므로, 이름을 큰따옴표로 감싸 확인한다. 첫 SELECT 뒤에 세미콜론이 붙어 있지 않은지, 복사해 넣은 쿼리에 보이지 않는 유니코드 문자가 섞이지 않았는지도 함께 본다.