Регулярное выражение для разделения SQL-кода на несколько пакетов.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Регулярное выражение для разделения SQL-кода на несколько пакетов.

Сообщение Anonymous »

У нас есть Java-программа, которая используется для передачи произвольного SQL-кода на серверы MS SQL через JDBC.
В более старых версиях входной SQL-код просто разделялся на ;-символ, отправляющий одну часть за раз с использованием ReadedStatement JDBC.
Это было слишком простодушно - что, если ; встречается внутри строковый литерал? -- поэтому новый код попытался передать весь SQL-код на сервер в одном ReadyStatement.
Это сработало для большей части наших существующих SQL- файлы, кроме тех, которые создают хранимые процедуры и выполняют их:

Код: Выделить всё

INSERT INTO #MEOW VALUES('foo', 1);
INSERT INTO #MEOW VALUES('bar', 2);
CREATE PROCEDURE #MEOW_sp
AS
BEGIN
SELECT BAR, FOO INTO #WOOF FROM #MEOW
END;
INSERT INTO #MEOW VALUES('boo', 11);
exec #MEOW_sp;
Согласно документации MS SQL, CREATE PROCEDURE должен быть единственным оператором в пакете.
Итак, нам все еще нужно разделить SQL-объекты, но мне хотелось бы более сложную границу разделения, чем ;. Каким будет шаблон, который разделит приведенный выше SQL-код на три части:
  • Одна с двумя INSERT. >
  • Один с CREATE PROCEDURE.
  • Один с третьим INSERT и exec.
Я полагаю, что придется использовать регулярное выражение «просмотра вперед», что-то вроде (?=(((CREATE|ALTER)\\s+PROCEDURE[^; ]+;*))) -- но это не работает...

Подробнее здесь: https://stackoverflow.com/questions/790 ... le-batches
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Регулярное выражение для разделения SQL-кода на несколько пакетов.
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Регулярное выражение для разделения SQL-кода на несколько пакетов.
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Регулярное выражение для разделения кода SQL на несколько пакетов
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Регулярное выражение для разделения строки по первому буквенному символу
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Регулярное выражение Python для нескольких критериев разделения
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»