![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как убрать лишние пробелы в поле InteBase [D6, IB6.x]
ruslan_as © (2003-07-08 10:41:00)Господа, помогите избавиться от назойливых пробелов, пришедших во время импорта данных. Данные должны быть VARCHAR но без пробелов.
Alexandr CH_ (2003-07-08 14:04:00) [1]
Зачем человека мучаете. Ищи там, где сервер установлен
библиотеку ib_udf.dll. Затем ищи скрипт для ее регистрации
ib_udf.Sql, чтобы самому не писать. Ну и запусти этот скрипт.
А затем сделай как ЖУК говорил.
kaif (2003-07-08 13:06:00) [2]В стандартной библиотеке UDF есть такие функции (типа trim). Посмотри в документации, как подключить функцию через
DECLARE FUNCTION
и сделай так, как советует Жук.
Это самый быстрый путь. Заодно освоишь функции.
Alexandr (2003-07-08 12:15:00) [3]3. вручную отредактировать все записи.
Johnmen (2003-07-08 12:12:00) [4]Если не возражаете, резюме : :)
Сколько и где было пробелов записано, столько и там их будет (varchar).
1. Взять готовую или написать свою UDF, типа TRIM, LTRIM, RTRIM.
2. Написать небольшое приложение, где и сделать обрезание.
Anatoly Podgoretsky (2003-07-08 12:11:00) [5]Обеда жду
NickBat (2003-07-08 12:06:00) [6]Anatoly Podgoretsky © (08.07.03 11:57)
Сорри был не внимателен. Перечитал весь пост и обнаружил, что у автора данные в базе уже с пробелами. :)))
С кем не бывает.
Только по моему Анатолий какой-то взвинченый с утра. :))
Anatoly Podgoretsky (2003-07-08 11:57:00) [7]NickBat © (08.07.03 11:28)
А ты читал, что я писал про самоволиие базЮ, такую базу в корзину. Правильная база должна в соответствии с SQL 92 вывести все что в нее положено, без самоволия, различие только для CHAR по стандарту должна дополнить запись пробелами до длины, для VARCHAR все кае есть, ничего не добавляя и не урезая.
Ты берешься утверждать, что Интербейс работает не по стандарту?
Это поведение документировано для Интербейс?
Alexandr (2003-07-08 11:56:00) [8]так...
кароче, пусть udf пишет сам как ему надо.
Max Zyuzin (2003-07-08 11:47:00) [9]>Жук © (08.07.03 11:44)
А я из вопроса понял так что пробелы могут быть где угодно не только сначала и с конца...
Жук (2003-07-08 11:44:00) [10]
> DenK_vrtz © (08.07.03 11:35)
А левые - не концевые ? :-)
DenK_vrtz (2003-07-08 11:35:00) [11]Жук © (08.07.03 11:33), а правые - это не концевые? :-)
Жук (2003-07-08 11:33:00) [12]
> ruslan_as © (08.07.03 11:19)
Надо эти функции подключить сначала к базе.
> NickBat © (08.07.03 11:28)
> Поле типа VARCHAR и так всеми нормальными компонетами возвращается
> без концевых пробелов.
По-моему только правые автоматом обрезаются...
Romkin (2003-07-08 11:31:00) [13]Если в него пихалось с пробелами - так и останется :-)
Может помочь простой update ... set Field = cast(Field as Varchar(...)) Хотя не уверен...
NickBat (2003-07-08 11:28:00) [14]ruslan_as ты читал Johnmen © (08.07.03 10:47)?
Поле типа VARCHAR и так всеми нормальными компонетами возвращается без концевых пробелов.
ruslan_as (2003-07-08 11:19:00) [15]>>ЖУК
Спасибо! Наверное я Вас озадачил с переводом...
просто после запроса типа
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.
Где я не прав?
Жук (2003-07-08 11:13:00) [16]ltrim - Removes leading spaces from the input string.
rtrim - Removes trailing spaces from the input string.
Anatoly Podgoretsky (2003-07-08 11:11:00) [17]А что может быть другое решение, тогда подобная база соишком самовольная.
ruslan_as (2003-07-08 11:07:00) [18]>>Max Zyuzin
В принципе так и сделаю, если не найду решения через SQL.
Alexandr (2003-07-08 11:05:00) [19]значит сделай как тебе жук советовал.
ruslan_as (2003-07-08 11:05:00) [20]>>Johnmen
Поля VARCHAR я выбрал для хранения номера квартир (там бывают с буквами). Этот тип поля показался мне наиболее подходящим. Может я не прав?