Текущий архив: 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.007 c