ПОМОГИТЕ С ТРИГГЕРОМ !!!
От: Pilgrimanto  
Дата: 23.02.09 16:02
Оценка:
помогите пожалуйста, чайнику: преобразование даты в месяц, число, год при вставке в другую таблицу

CREATE OR REPLACE TRIGGER proba
BEFORE INSERT
ON F2_2009
FOR EACH ROW


BEGIN
INSERT INTO t316
(d_rojd,
m_rojd,
y_rojd
)
VALUES (
TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 1, 2)),
TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 4, 5)),
TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 7, 10))

);
END;

t316
d_rojd number (2,0);
m_rojd number (2,0);
y_rojd number (4,0);



f2_2009
data_rojd date;
Re: ПОМОГИТЕ С ТРИГГЕРОМ !!!
От: Tigor Россия  
Дата: 24.02.09 13:57
Оценка:
Здравствуйте, Pilgrimanto, Вы писали:

P>помогите пожалуйста, чайнику: преобразование даты в месяц, число, год при вставке в другую таблицу


P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 1, 2)),

P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 4, 5)),
P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 7, 10))

Используйте спец. функцию extract:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions052.htm#i1017161
К сожалению, в действительности все выглядит иначе, чем на самом деле.
Re: ПОМОГИТЕ С ТРИГГЕРОМ !!!
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 24.02.09 14:17
Оценка:
Здравствуйте, Pilgrimanto, Вы писали:

P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 1, 2)),

P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 4, 5)),
P>TO_NUMBER (SUBSTR (TO_CHAR (:NEW.data_rojd), 7, 10))

видимо так задумывалось:

to_number(to_char(:NEW.data_rojd,'DD')),
to_number(to_char(:NEW.data_rojd,'MM')),
to_number(to_char(:NEW.data_rojd,'YYYY'))

bo
Re: ПОМОГИТЕ С ТРИГГЕРОМ !!!
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 26.02.09 14:52
Оценка:
Здравствуйте, Pilgrimanto, Вы писали:

P>помогите пожалуйста, чайнику: преобразование даты в месяц, число, год при вставке в другую таблицу


чет я перечитал...
а топикстартер знает, что можно делать insert сразу в несколько таблиц без использования тригера?
во
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.