Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.53 MB
Время: 0.014 c
4-1201174540
Light
2008-01-24 14:35
2008.11.30
Internet Explorer


15-1222689558
^-k2-^
2008-09-29 15:59
2008.11.30
"Микрософт загибается" :)


6-1195160742
homm
2007-11-16 00:05
2008.11.30
TWebBrowser: Вызов процедуры на дельфи


2-1224766335
Lamer6666
2008-10-23 16:52
2008.11.30
Kak obratit sa k elementu formi po ego imeni?


8-1188033550
hahol
2007-08-25 13:19
2008.11.30
помогите чайнику плз