Текущий архив: 2008.11.30;
Скачать: CL | DM;
Вниз
Создание sql запроса Найти похожие ветки
← →
ganda (2008-10-23 09:06) [0]имеется таблица Table1, там же есть поле Field1 (тип строковой) в нем содержится допустим символ "Y" его нужно заменить на "y". Собственно вопрос как можно реализовать одним sql-запросом такую замену?
← →
Сергей М. © (2008-10-23 09:10) [1]TTable для этого никак не подходит
← →
ganda (2008-10-23 09:14) [2]Забыл написать база Oracle-9! Вариант написание мелкой программы конечно одно из решений, но это будет крайний вариант!
← →
Palladin © (2008-10-23 09:16) [3]проблема в чем?
← →
Сергей М. © (2008-10-23 09:16) [4]
> написание мелкой программы конечно одно из решений
Чем TTable в "маленькой" программе отличается от TTable в "большущенькой" программе ?
Ничем.
← →
ganda (2008-10-23 09:18) [5]
> Palladin © (23.10.08 09:16) [3]
Отсутствие глубоких знаний в построение sql-запроса в Oracle
← →
Palladin © (2008-10-23 09:19) [6]каких наф глубоких? тут глубиной нисколечко не пахнет... тут основы нужно почитать... для самых самых маленьких...
← →
ganda (2008-10-23 09:21) [7]
> Чем TTable в "маленькой" программе отличается от TTable
> в "большущенькой" программе ?
> Ничем.
Ничем правда, но разница во времени исполнения!и речь пока не идёт, о создание программы. А о создание sql-запроса
← →
Поросенок Винни-Пух © (2008-10-23 09:23) [8]Вариант написание мелкой программы конечно одно из решений, но это будет крайний вариант!
маленький анонимный PLSQL блок +sql+
← →
Сергей М. © (2008-10-23 09:26) [9]
> построение sql-запроса в Oracle
SQL92/99 одинаков везде - текст интересующего UPDATE-запроса будет практически одинаков что в Oracle, что на Луне.
А знание расширенных SQL-диалектов ("глубокие знания"), специфичных для той или иной СУБД (в твоем случае Oracle), для решения такой тривиальной задачи вовсе не требуется.
← →
easy © (2008-10-23 09:28) [10]http://www.adp-gmbh.ch/ora/sql/upper.html
← →
Сергей М. © (2008-10-23 09:29) [11]
> речь пока не идёт, о создание программы
Как это не идет ?!
Ты уже шлепнул на форму некий компонент Table1, следовательно, уже положил начало реализации алгоритма программы..
← →
ganda (2008-10-23 09:44) [12]Спасибо за ответы! Решение найдено
update Table set Field1 = REPLACE(Field1, "Y", "y")
← →
Сергей М. © (2008-10-23 09:48) [13]
> ganda (23.10.08 09:44) [12]
Плохое решение. И не только для Оракла.
ты апдейтишь все записи в таблице, вне зависимости от реальной необходимости.
← →
ganda (2008-10-23 09:59) [14]А мне как раз и нужно все записи изменить!
← →
Palladin © (2008-10-23 10:03) [15]
> А мне как раз и нужно все записи изменить!
Вне зависимости от реальной необходимости? То бишь все сто тыщь миллионов? Даже если там только одна запись с Y тебе нужно все сто тыщь миллионов изменить? :)
← →
Ega23 © (2008-10-23 10:25) [16]
> Вне зависимости от реальной необходимости? То бишь все сто
> тыщь миллионов? Даже если там только одна запись с Y тебе
> нужно все сто тыщь миллионов изменить? :)
Если это разовая операция и исполняется вместо десяти секунд пять минут - то пофиг.
А вот если это не разовая - тут уже да.
← →
Правильный$Вася (2008-10-23 12:00) [17]
> Ega23 © (23.10.08 10:25) [16]
ты не прав
лог изменений накатывается, кэш данных забивается, индексы неиспользуются
системная статистика сбивается
← →
stas © (2008-10-23 12:05) [18]Palladin © (23.10.08 10:03) [15]
Правильный$Вася (23.10.08 12:00) [17]
Вот интересные вы люди, а что делать ему если надо обновить все данные?
← →
Palladin © (2008-10-23 12:09) [19]Ну кто из нас интересней это еще вопрос :) А вот обновлять все сто тыщь миллионов ради "символ "Y" его нужно заменить на "y"" это даже не знаю как сказать... подход довольно генитальный... прошу прощенья за мой французский...
← →
stas © (2008-10-23 12:18) [20]Palladin © (23.10.08 12:09) [19]
Ну, а как по другому?
← →
stas © (2008-10-23 12:20) [21]Palladin © (23.10.08 12:09) [19]
я по поводу единоразового обновления, если конечно это будет где-то в программе выполнятся постоянно, то конечно же я против такого решения.
← →
Palladin © (2008-10-23 12:24) [22]
> stas © (23.10.08 12:18) [20]
как это как.. тебе незнаком раздел update запроса - where ?
← →
Ega23 © (2008-10-23 12:36) [23]
> как это как.. тебе незнаком раздел update запроса - where ?
Известен. Мне полное условие задачи неизвестно: как часто встречается y в записях, нужно заменять только те поля, которые равны "y" или и "By" и "yYy" и т.п.
Поэтому в такой ситуации говорить о какой-то оптимизации - тупо бессмысленно.
← →
Johnmen © (2008-10-23 13:25) [24]Тупо бессмысленно говорить вообще о поле, у которого либо "Y" либо "N"
:))
← →
stas © (2008-10-23 13:35) [25]Palladin © (23.10.08 12:24) [22]
исходя из того что мы знаем можно лишь написатьWhere field1 like"%y%"
но не факт что это облегчит работу серваку.
← →
Правильный$Вася (2008-10-23 13:54) [26]
> но не факт что это облегчит работу серваку.
заметно облегчит
хотя бы тем, что модифицироваться будут только нужные записи, в лог наката и в статистику не будет литься мусор
← →
Anatoly Podgoretsky © (2008-10-23 19:30) [27]> ganda (23.10.2008 9:44:12) [12]
Ты не в той таблице делаешь обновление, в вопросе Table1, а в запросе Table, кроме того обновляешь не те значения, которые согласно твоему вопросу, равны Y, а все буквы Y.
← →
Anatoly Podgoretsky © (2008-10-23 19:31) [28]> stas (23.10.2008 12:05:18) [18]
С какой стати все, когда в вопросе, только те, которые равны Y
Страницы: 1 вся ветка
Текущий архив: 2008.11.30;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.008 c