Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > gen_id


Автор: Тиль 30.9.2010, 16:15
такая засада: стоит оракла 9-ка пытаюсь сделать простейшую процедуру:
Код

CREATE OR REPLACE 
procedure base_insert
(

 -- RN            in number,
  dateisp           in date,
  sobstvennik           in varchar2,
  zavnom        in varchar2,
  tip         in varchar2,
  nomdav           in varchar2,
  gabarit          in varchar2
)
as
  nRN           ispitaniya.RN%TYPE;
--  nCOUNT          number;
begin
nRN := gen_id;
  /* добавление записи в таблицу */
  insert
    into ispitaniya
      (RN, dateisp, sobstvennik, zavnom, tip,nomdav,gabarit)
    values
(nRN, dateisp, sobstvennik, zavnom, tip,nomdav,gabarit);
end;


ругается что ORA-24344: success with compilation error
16/8    PLS-00201: identifier 'GEN_ID' must be declared
16/1    PL/SQL: Statement ignored

gen_id ведь генератор ключей..в чем может быть дело?


Автор: Zloxa 30.9.2010, 16:27
в slqplus наберите 
Код

desc gen_id
desc ispitaniya

и покажите результат

Автор: Тиль 30.9.2010, 16:29
пробую создать последовательность

CREATE SEQUENCE seq INCREMENT BY 1

 и сделать так

nRN := seq.nextval;

все равно не канает....

Автор: Zloxa 30.9.2010, 16:30
Цитата(Тиль @  30.9.2010,  16:15 Найти цитируемый пост)
gen_id ведь генератор ключей..

Вы оракл с FB не спутали ли?

Автор: Тиль 30.9.2010, 16:33
desc gen_id-не находит объект, блин походу не перетащил из другой базы, 
desc ispitaniya все нормально....как же сделать генератор ключей то?SEQUENCE неправильно написал?

Автор: Zloxa 30.9.2010, 16:34
Цитата(Тиль @  30.9.2010,  16:29 Найти цитируемый пост)
nRN := seq.nextval;

такой синтаксис поддерживается начиная с 11й версии
 в девятке надо 
Код

select seq.nextval into nRN from dual;

но так, имха лучше
Код

  insert
    into ispitaniya
      (RN, dateisp, sobstvennik, zavnom, tip,nomdav,gabarit)
    values(seq.nextval, dateisp, sobstvennik, zavnom, tip,nomdav,gabarit)
    returning RN into nRN; 

Автор: Тиль 30.9.2010, 16:41
черт, точно...спс

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)