JDBC-запрос к Oracle - PullRequest
       22

JDBC-запрос к Oracle

1 голос
/ 05 апреля 2010

Мы планируем перенести нашу БД в Oracle. Нам нужно вручную проверить, работает ли каждый из встроенных SQL-операторов в Oracle, так как немногие могут следовать различным правилам SQL. Теперь моя потребность очень проста.

Мне нужно просмотреть файл, который может содержать такие запросы.

String sql = "select * from test, где name =" + test + "и age =" + age;

Существует около 1000 файлов, и у каждого файла есть разные типы запросов, например, здесь мне нужно выделить только один запрос, который я сделал с помощью сценария Unix. Но мне нужно преобразовать эти запросы на основе Java в совместимые с Oracle запросы.

т. выберите * из теста, где имя = "имя" и возраст = "возраст"

По сути, мне нужно проверить синтаксис запросов по этому. Я видел что-то подобное в TOAD, но у меня более 1000 файлов, и я не могу вручную изменить каждый из них. Есть ли способ?

Я объясню больше, вопрос не ясен

Ответы [ 2 ]

2 голосов
/ 05 апреля 2010

По соображениям производительности и безопасности вы должны использовать PreparedStatement.bind (...) вместо конкатенации строк для построения строк SQL.

Я не знаю способа решения этой проблемы, кроме исправления кода, который необходимо исправить. Если вы можете найти общие шаблоны, то вы можете автоматизировать часть редактирования, используя find / replace или sed или какой-либо другой инструмент, если вы проверяете результат перед его проверкой.

Если есть тысячи файлов, я думаю, что есть команда разумного размера, которая создала код таким образом. Представляется справедливым разделить рабочую нагрузку между людьми, которые создали систему, а не сваливать все это на одного человека. В противном случае вы окажетесь «парнем по исправлению SQL», и никто из команды не будет иметь стимулов для написания кода SQL более переносимым способом.

0 голосов
/ 06 апреля 2010

Ваше текущее приложение выполняет SQL через общий класс? Не могли бы вы добавить запись в журнал, чтобы распечатать сырой SQL в этом общем классе? Из этого вывода вы можете написать небольшой скрипт для запуска каждого оператора в Oracle.

...