Не смотря на то, что записи в блоге я делаю редко, мысль на месте не стоит. Поэтому Вот еще одно откровение:
CAST () - как это работает?
Можно написать в гугле запрос и увидеть, что это такое. От себя хочу добавить такой вот пример процедуры.
Задача: написать процедуру, которая бы выдавала цифро-буквенный код для номера документа.
begin
select max(docs.id) from docs
into :max_id; /*Выясняем номер последней записи в таблице документов*/
max_id=max_id+1; /*Увеличиваем его значение на единицу*/
doc_id=CAST (max_id AS VARCHAR(10)); /*Преобразуем число в строку длиной в 10 символов.*/
if (CHAR_LENGTH(doc_id)=1) then doc_id=doc_id||'00';
if (CHAR_LENGTH(doc_id)=2) then doc_id=doc_id||'0'; /*В зависимости от длины, добавляем нули*/
doc_id='Д'||doc_id;/*Добавляем букву в начале*/
str_date=extract (month FROM (SELECT CURRENT_DATE FROM RDB$DATABASE)); /*Выясняем номер текущего месяца*/
doc_id=doc_id||right(str_date,2); /*Присоединяем число месяца*/
str_date=extract (YEAR FROM (SELECT CURRENT_DATE FROM RDB$DATABASE)); /*Выясняем номер текущего года*/
doc_id=doc_id||right(str_date,2); /*последние 2 его цифры*/
suspend;
end
Новые комментарии