Главная страница
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.52 MB
Время: 0.017 c
1-100684
Schummi
2003-07-14 08:30
2003.07.31
PByte


3-100531
Леонид
2003-07-07 18:30
2003.07.31
Помогите с поиском по Locate с использованием radioButton


1-100709
GSergei
2003-07-18 14:53
2003.07.31
Запущена ли служба?


3-100557
Jaxtor
2003-07-08 11:24
2003.07.31
TDbCheckBox


1-100742
alfim
2003-07-16 08:28
2003.07.31
Excel.Application.8, его свойства и методы...