синтаксический анализ строки согласно операторам оракула с регулярным выражением - PullRequest
0 голосов
/ 30 марта 2010

В основном я пытался заменить часть строки ее фактическим значением, которое следует сразу после операторов оракула. Я могу сделать это для ограниченного списка операторов, например {=,>,<}, но мне интересно, есть ли какой-нибудь выход, чтобы собрать всех операторов, а не давать их руками? Например, у меня есть эта строка; "a = xyz", тогда я заменю xyz на, скажем, 3. Но, как вы знаете, у нас есть куча операторов, а именно "like,in,exists etc". Поэтому моя строка также может быть такой: "a like xyz".

Так что вы мне предлагаете?

Спасибо.

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Так что вы мне предлагаете?

Я предлагаю не делать это с регулярным выражением (регулярное выражение не может этого сделать), но использовать существующий, проверенный анализатор SQL.

Посмотрите на этот вопрос по SO: Библиотека парсера SQL для Java

0 голосов
/ 31 марта 2010

Упростите вашу работу - требуйте очень строгого синтаксиса от имени вызывающего абонента.

Например, требуется, чтобы строка была в форме "целевой оператор # переменная #", например, "a = #xyz#".

Тогда все, что вам нужно сделать, это использовать REPLACE(input, '#xyz#', 3).

Как отмечалось выше, вы, вероятно, не хотите заново изобретать синтаксический анализатор операторов SQL Oracle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...