Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизКак в IB(FireBird) в SQL dialecte 3 добавить вычисляемое поле? Найти похожие ветки
← →
Roki (2003-03-17 18:18) [0]Мастера, помогите. Перешел на SQL dialect3 и хочу добавить вычисляемое поле:
ALTER TABLE "employee_working"
ADD "fio" COMPUTED BY (MiddleName||" "||FirstName||" "||LastName)
Баг:
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
MIDDLENAME.
At line 2, column 24.
Когда был SQL диалект 1 было без проблем...
Использую IBManeger
← →
zacho (2003-03-17 18:22) [1]Либо пиши все поля в кавычках и с учетом регистра (т.е. не MiddleName, а "MiddleName"), либо названия всех объектов в запросе - в верхнем регистре и без кавычек
← →
Roki (2003-03-17 18:25) [2]Какие выгоды от 3 диалекта?
← →
zacho (2003-03-17 18:33) [3]>
> Roki (17.03.03 18:25)
> Какие выгоды от 3 диалекта?
Типы данных DATE,TIME,INT64(aka BIGINT), функция EXTRACT и т.п.
Подробнее смотри на http://www.ibase.ru ,точную ссылку сейчас не помню, но там точно все есть, а кто ищет - тот всегда найдет :)
← →
zacho (2003-03-17 18:43) [4]
> zacho © (17.03.03 18:22)
Небольшое уточнение:
Если ты создаешь таблицу как :CREATE TABLE EMPLOYEE_WORKING (MIDDLENAME (какой-то тип), ...
то должен писатьALTER TABLE EMPLOYEE_WORKING
ADD FIO COMPUTED BY (MIDDLENAME...)
А если создал какCREATE TABLE "employee_working ("MiddleName" (какой-то тип), ...
то должен писатьALTER TABLE "employee_working"
ADD "fio" COMPUTED BY ("MiddleName"...
Это относится не только к DDL, но и к DML
← →
zacho (2003-03-17 19:06) [5]
> zacho © (17.03.03 18:33)
Еще одно уточнение :-)
Лично для меня самый большой плюс диалекта 3 в том, что NUMERIC(scale,precision) при scale>10 реально хранится как INT64, что дает возможность нормально работать с "деньгами". Например поле с доменом CREATE DOMAIN D_MONEY AS NUMERIC (15,2) в диалекте 1 на самом деле было бы типа double precision, а в диалекте 3 - INT64
← →
Alexandr (2003-03-18 07:37) [6]и как только до третьего диалекта с деньгами работали...
Вот, видать от этого вся страна и развалилась.
В стране кризис от того, что с деньгами в первом диалекте неправильно работали...
← →
zacho (2003-03-18 12:46) [7]
> Alexandr © (18.03.03 07:37)
Ну зачем столько ехидства ?
Впрочем, похоже я сам не точно выразился.
Я вовсе не имел в виду, что правильно работать с деньгами в диалекте 1 невозможно. Просто в диалекте 3 гораздо удобнее. Особенно для новичков, которые могут и не подумать о погрешностях, связанных с хранением чисел с фиксированной запятой в поле типа double precision.
← →
Alexandr (2003-03-18 13:03) [8]щас. Только к гемору с умножением и делением привыкнуть надо...
← →
zacho (2003-03-18 13:27) [9]
> Alexandr © (18.03.03 13:03)
> щас. Только к гемору с умножением и делением привыкнуть
> надо...
Просто надо читать документацию :) Впрчем, насколько я помню, умножение/деление NUMERIC и DECIMAL и в первом диалекте так же происходило. Или память меня подводит ? Или ты вообще про какой-то другой гемор?
А еще можно юзать Дятла с его __MONEY :)
← →
Alexandr (2003-03-18 13:51) [10]я щас не помню на память, но отличия есть, и именно эти отличия часто являются граблями при смене диалекта
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c