Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.30;
Скачать: [xml.tar.bz2];

Вниз

Создание 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.03 c
15-1222712852
NailMan
2008-09-29 22:27
2008.11.30
Просьба имеющим Емул ака Осла


2-1224529956
cruiser
2008-10-20 23:12
2008.11.30
String и повторяющиеся элементы


8-1188299704
Арт
2007-08-28 15:15
2008.11.30
векторное изображение и работа с ним...


15-1222431616
Василий Жогарев
2008-09-26 16:20
2008.11.30
HSDPA USB MODEM MF622


2-1224769834
Piero
2008-10-23 17:50
2008.11.30
Двумерный массив в классе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский