Я не думаю, что вам даже нужно создавать схему, чтобы иметь возможность проверять оператор, потому что система не будет пытаться разрешить имя_объекта и т. Д., Пока не успешно проанализирует оператор.
На примере Oracle вы наверняка получите сообщение об ошибке:
select * from non_existant_table;
В этом случае «ORA-00942: таблица или представление не существует».
Однако, если вы выполните:
select * frm non_existant_table;
Тогда вы получите синтаксическую ошибку: «ORA-00923: ключевое слово FROM не найдено там, где ожидается».
Должна быть возможность классифицировать ошибки по синтаксическому синтаксическому анализу, которые указывают на неправильный синтаксис и ошибки, связанные с именами и разрешениями таблиц и т. Д.
Добавьте к этому проблему разных СУБД и даже разных версий, допускающих разные синтаксисы, и я думаю, что вам действительно нужно обратиться к движку db для этой задачи.