Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Народ помогите!!   Найти похожие ветки 

 
Natalishka ©   (2002-08-07 13:26) [0]

В Оракле нет автоинкрементного типа поля((
подскажите как его выразить?
через триггер?
я создала триггер кот должен добовлять этот тип при Insert before
но
при заполении
допустим Id это уникальное наше автоинкрементного типа поля
и v1 varchar2(15)
Insert into vrem
(v1)
values("about")
а этот тип поля не надо писать тут ?
а IB такое не писали!
подскажите
или через...SEQUENCE
как??
я мучаюсь уже котрый день!


 
Delphi7   (2002-08-07 13:32) [1]

Зачэм мучаешься, да ?! Загляны в документацею по Оракулу !
Али в хэлп по нему же...


 
dimis   (2002-08-07 14:02) [2]

>> Delphi7 согласен

однозначно это делается через sequence

insert into Table1(ide,...) values(seq1.nextval,"RRR")

где seq1 - SEQUENCE


 
fnatali ©   (2002-08-07 14:02) [3]

>или через...SEQUENCE - правильное направление


 
Natalishka ©   (2002-08-07 14:05) [4]

>Dimis
я уже так делала не работет!
insert into Table1(ide,...) values(seq1.nextval,"RRR")
такую же пишет ошибку


 
fnatali ©   (2002-08-07 14:06) [5]

Какую ошибку?


 
Natalishka ©   (2002-08-07 14:12) [6]

Cannot insert null into ("user"."BD"."ID")


 
robi ©   (2002-08-07 14:15) [7]

>или через...SEQUENCE


 
Natalishka ©   (2002-08-07 14:22) [8]

> Robi
не поняла
или через...SEQUENCE??


 
fnatali ©   (2002-08-07 14:31) [9]

А в каком-нибудь SQL-редакторе (SQL Navigator, TOAD или чем ты пользуешься) этот запрос отрабатывает?


 
Val ©   (2002-08-07 14:32) [10]

create sequence seq1 - такую штуку делали?


 
Johnmen ©   (2002-08-07 14:32) [11]

Полный текст запроса в студию !


 
Natalishka ©   (2002-08-07 14:44) [12]

использую! SQL Navigator
1.создаю sequence
CREATE SEQUENCE VIP.GEN
START WITH 1
INCREMENT BY 1

2.база vrem (на всякий)
CREATE TABLE VIP.VREM
(
id INTEGER NOT NULL,
v1 VARCHAR2 (15),
constraint PK_vrem primary key (id)
);

3.пытаюсь в SQL Editor
внести в базу данные

insert into vrem
(id,v1)
values (gem.NEXTVAL,"about")
вот и тут ошибка
Cannot insert null into ("VIP"."VREM"."ID")!!!


 
Внук ©   (2002-08-07 14:48) [13]

CREATE SEQUENCE VIP.GEN
...
values ( gem.NEXTVAL
???


 
Natalishka ©   (2002-08-07 14:49) [14]

и ещё попробовала это же сделать
только в ту переменную
где id INTEGER без NOT NULL
тада всё работает!
а мне надо
id INTEGER NOT NULL


 
Natalishka ©   (2002-08-07 14:52) [15]

Внук
попробуй сам присвоить такое значение полю Integer not null
получится ли у тебя?


 
Внук ©   (2002-08-07 14:53) [16]

См. fnatali © (07.08.02 14:31)
Скорее всего запрос отрабатывает во внешних приложения, а в программе не работает, потому что у Id Required=true - распространенная ошибка


 
dimis   (2002-08-07 14:54) [17]

попробуй так

create or replace procedure insert_vrem(rrr varchar2)
is
in_ide number;
begin
select gem.NEXTVAl into in_ide from dual
insert into vrem
(id,v1)
values (in_ide,rrr)
end;


 
Val ©   (2002-08-07 15:03) [18]

>Natalishka © (07.08.02 14:49)
а мне надо
id INTEGER NOT NULL


constraint PK_vrem primary key (id)
это делает



 
Natalishka ©   (2002-08-07 15:04) [19]

> Dimis
dual это что какая то друцгая бд?


 
Val ©   (2002-08-07 15:09) [20]

>Natalishka © (07.08.02 15:04)
dual такая таблица, в которой есть все :)
можно по простому:
in_ide := gen.NEXTVAl , но это лишнее действие, должно работать и так:
insert into vrem
(id,v1)
values (gen.NEXTVAL,"about");


 
Внук ©   (2002-08-07 15:32) [21]

Ну что вы здесь ненаучную фантастику разводите - работает ведь все дословно из Natalishka © (07.08.02 14:44) в PL/SQL Developer.

>"получится ли у тебя?"
Так ведь эттта... Не первый год уже работаю с Oracle, пока все получается


 
3JIA9I CyKA ©   (2002-08-07 15:51) [22]

8)


 
Natalishka ©   (2002-08-08 07:52) [23]

все спасибо всё получилось!
но на счёт триггеров так и ни кто не ответил!
если я создала триггер кот при добавлении в таблицу заносить сам этот тип поля
то как его указать?
где ??
при вставке данных?


 
dimis   (2002-08-08 09:14) [24]

я делал так

TRIGGER my_tr
before insert on vrem
for each row
declare
-- local variables here
begin
if :new.id is null then
select my_seq.nextval
into :new.id
from dual ;
end if;

end dog_befin_tr;


 
Внук ©   (2002-08-08 09:21) [25]

Имеется в виду вот это?

CREATE OR REPLACE TRIGGER VIP.TI_VREM BEFORE INSERT ON VIP.VREM FOR EACH ROW
BEGIN
:NEW.ID:=GEM.NEXTVAL;
END;





Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
1-95758
CashDi
2002-08-19 13:21
2002.08.29
регулярные выражения


1-95812
lipskiy
2002-08-15 01:46
2002.08.29
Можно ли получить имя процедуры/функции в строковую переменную?


7-95988
lexx@demon
2002-06-18 13:44
2002.08.29
Уважаемые мастера подскажите пожалуйста, как получить


3-95672
Дмитрий757567
2002-08-08 11:39
2002.08.29
Что лучше SQL Server или MSSQL ?


1-95767
Ura
2002-08-19 16:14
2002.08.29
_DCB структура COMM порта.