Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Как убрать лишние пробелы в поле InteBase   Найти похожие ветки 

 
ruslan_as   (2003-07-08 10:41) [0]

Господа, помогите избавиться от назойливых пробелов, пришедших во время импорта данных. Данные должны быть VARCHAR но без пробелов.


 
Жук   (2003-07-08 10:45) [1]

update MyTable
set MyField=ltrim(rtrim(MyField))


 
Johnmen   (2003-07-08 10:47) [2]

Поля VARCHAR ? Тогда неясна проблема...
Как импортировались данные ?


 
ruslan_as   (2003-07-08 10:55) [3]

>>Жук
А что такое ltrim и rtrim?

>>Johnmen Импортировались не мною (из Excel). Я бы их туда не пустил бы... но уже поздно...


 
Johnmen   (2003-07-08 10:57) [4]

Поля VARCHAR ?


 
Max Zyuzin   (2003-07-08 11:02) [5]

>ruslan_as © (08.07.03 10:41)
Можно банально... проходя по всем записям убирать ненужные пробелы и апдейтить таблицу.


 
DenK_vrtz   (2003-07-08 11:04) [6]

Johnmen © (08.07.03 10:57), может он не знает что такое VARCHAR?


 
ruslan_as   (2003-07-08 11:05) [7]

>>Johnmen
Поля VARCHAR я выбрал для хранения номера квартир (там бывают с буквами). Этот тип поля показался мне наиболее подходящим. Может я не прав?


 
Alexandr   (2003-07-08 11:05) [8]

значит сделай как тебе жук советовал.


 
ruslan_as   (2003-07-08 11:07) [9]

>>Max Zyuzin
В принципе так и сделаю, если не найду решения через SQL.


 
Anatoly Podgoretsky   (2003-07-08 11:11) [10]

А что может быть другое решение, тогда подобная база соишком самовольная.


 
Жук   (2003-07-08 11:13) [11]

ltrim - Removes leading spaces from the input string.
rtrim - Removes trailing spaces from the input string.


 
ruslan_as   (2003-07-08 11:19) [12]

>>ЖУК
Спасибо! Наверное я Вас озадачил с переводом...
просто после запроса типа

update customer c
set c.num_flat=ltrim(rtrim(c.num_flat))

в IBExpert выдало следующее:

An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
LTRIM.

Где я не прав?


 
NickBat   (2003-07-08 11:28) [13]

ruslan_as ты читал Johnmen © (08.07.03 10:47)?

Поле типа VARCHAR и так всеми нормальными компонетами возвращается без концевых пробелов.


 
Romkin   (2003-07-08 11:31) [14]

Если в него пихалось с пробелами - так и останется :-)
Может помочь простой update ... set Field = cast(Field as Varchar(...)) Хотя не уверен...


 
Жук   (2003-07-08 11:33) [15]


> ruslan_as © (08.07.03 11:19)

Надо эти функции подключить сначала к базе.


> NickBat © (08.07.03 11:28)
> Поле типа VARCHAR и так всеми нормальными компонетами возвращается
> без концевых пробелов.

По-моему только правые автоматом обрезаются...


 
DenK_vrtz   (2003-07-08 11:35) [16]

Жук © (08.07.03 11:33), а правые - это не концевые? :-)


 
Жук   (2003-07-08 11:44) [17]


> DenK_vrtz © (08.07.03 11:35)

А левые - не концевые ? :-)


 
Max Zyuzin   (2003-07-08 11:47) [18]

>Жук © (08.07.03 11:44)
А я из вопроса понял так что пробелы могут быть где угодно не только сначала и с конца...


 
Alexandr   (2003-07-08 11:56) [19]

так...
кароче, пусть udf пишет сам как ему надо.


 
Anatoly Podgoretsky   (2003-07-08 11:57) [20]

NickBat © (08.07.03 11:28)
А ты читал, что я писал про самоволиие базЮ, такую базу в корзину. Правильная база должна в соответствии с SQL 92 вывести все что в нее положено, без самоволия, различие только для CHAR по стандарту должна дополнить запись пробелами до длины, для VARCHAR все кае есть, ничего не добавляя и не урезая.
Ты берешься утверждать, что Интербейс работает не по стандарту?
Это поведение документировано для Интербейс?


 
NickBat   (2003-07-08 12:06) [21]

Anatoly Podgoretsky © (08.07.03 11:57)

Сорри был не внимателен. Перечитал весь пост и обнаружил, что у автора данные в базе уже с пробелами. :)))
С кем не бывает.
Только по моему Анатолий какой-то взвинченый с утра. :))


 
Anatoly Podgoretsky   (2003-07-08 12:11) [22]

Обеда жду


 
Johnmen   (2003-07-08 12:12) [23]

Если не возражаете, резюме : :)
Сколько и где было пробелов записано, столько и там их будет (varchar).
1. Взять готовую или написать свою UDF, типа TRIM, LTRIM, RTRIM.
2. Написать небольшое приложение, где и сделать обрезание.


 
Alexandr   (2003-07-08 12:15) [24]

3. вручную отредактировать все записи.


 
kaif   (2003-07-08 13:06) [25]

В стандартной библиотеке UDF есть такие функции (типа trim). Посмотри в документации, как подключить функцию через
DECLARE FUNCTION
и сделай так, как советует Жук.
Это самый быстрый путь. Заодно освоишь функции.


 
Alexandr CH_   (2003-07-08 14:04) [26]


Зачем человека мучаете. Ищи там, где сервер установлен
библиотеку ib_udf.dll. Затем ищи скрипт для ее регистрации
ib_udf.Sql, чтобы самому не писать. Ну и запусти этот скрипт.
А затем сделай как ЖУК говорил.



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
14-100941
Дмитрий К.К.
2003-07-15 06:08
2003.07.31
Именинники 15 июля


1-100821
Zilog
2003-07-17 16:28
2003.07.31
КАК: нужно дату 17.07.2003 преобразовать в 2003/07/17


3-100596
Appa
2003-07-09 09:40
2003.07.31
IB


3-100606
po2
2003-07-09 09:08
2003.07.31
Работа с dBase-форматом из VFP


14-100964
Ray Konopka
2003-07-15 09:18
2003.07.31
Делфя умерла, да здравствует Октан и новое ИДЕ





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский