Искать имя столбца с его значением = 'xyz' в базе данных в oracle9i? - PullRequest
0 голосов
/ 27 февраля 2012

мы используем инструмент, который работает с определенной базой данных, обновляя определенные значения, когда мы вносим некоторые изменения в инструмент. Это займет много времени для какой-то простой задачи. Мне просто нужно выяснить, какая таблица, столбец и значение этого столбца обновляются.

для этого мне нужно выяснить всю базу данных, какое имя столбца имеет значение "XYZ" и соответствующую таблицу / таблицы.

Любые скрипты для них.

1 Ответ

3 голосов
/ 02 марта 2012

То, что можно сделать, не означает, что должно быть выполнено.

Я знаю, что ваш процесс спроектирован таким образом, и вы, скорее всего,Я не хочу это менять, но, на самом деле, ваша жизнь станет намного лучше, если вы перепроектируете это, чтобы избежать того, что действительно, серьезно, делать не следует.Поиск по каждому текстовому полю во всей базе данных в поисках какой-либо строки магического символа - плохая идея.На самом деле это только ОДНА из «Больших плохих идей», и, вероятно, это не «Самая плохая идея», но это достаточно большая и достаточно плохая идея, чтобы вы могли серьезно подумать о том, чтобы сделать что-то еще, лучше.

Хорошо, так что жечто-то не так?

Во-первых, это означает, что вы не используете базу данных, вы используете midden.Вы добавляете вещи, а затем надеетесь выкопать их позже.Это то, что люди делали тысячи лет назад (это было популярно еще тогда, когда Флинт был передовой технологией), и хотя это помогает сохранять занятость археологов копаться в этих кучах мусора, мы являемся разработчиками программного обеспечения, а не археологами, и мы неЯ не хочу делать подобные вещи регулярно.

Во-вторых, это серьезный фактор снижения производительности.Вы либо напишите какой-нибудь ужасный статический код для кропотливой проверки каждого поля в каждой таблице, либо вы напишете какой-нибудь средний и яркий код для динамического создания еще более ужасного запроса, который будет кропотливо проверять каждое полев каждом столе.Слово, на котором нужно сосредоточиться, является «трудоемким».И "ужасно", если дело доходит до этого.Сканирование каждой строки в каждой таблице в вашей базе данных и тестирование каждого поля во всех этих строках будет медленным.Очень, очень медленно.Это будет медленная черепаха на обочине дороги с метками на шине.Это нехорошо, если вы не владеете запасами в местной электросети и хотите убедиться, что у каждого сгенерированного электрона есть счастливый дом на вашем компьютере работодателя.

В-третьих, у людей будут сильные эмоции, когда ониувидеть твой кодТе, кому суждено сделать карьеру в сфере менеджмента, будут смеяться, потому что они знают, что им не придется его обслуживать или пытаться решить проблемы с производительностью.Технически оспаривают, будут плакать, потому что они будут знать, что они ничего не могут сделать, чтобы это исправить.Настоящие Кодовые Воины будут на мгновение смотреть в изумлении, а затем стиснут зубы, выследят вас и забьют вас до смерти своими церемониальными Жезлами Зеленой Стержни, потому что только они будут знать, что это зло можно было предотвратить.

Так что подумайте над редизайном.Еще раз, только то, что что-то может быть сделано, не означает, что должно быть сделано.

Делитесь и наслаждайтесь.

...