2016-12-22 1 views
0
CREATE OR REPLACE procedure sp_tab is 
    id1 number:=0; 
begin 
    select nvl(max(id1), 0) + 1 
    into id1 
    from DUAL; 
    insert into table1 
     SELECT distinct id1, '', SUBSTR(PRODUCT, 0, INSTR(PRODUCT, ' ') - 1), '' 
     FROM table2 
     WHERE PRODUCT NOT IN ('proved product', 'sample', 'graphic era', 'asa'); 
end; 

Процедура креатина для вставки идентификатора в таблицу 'table1' из таблицы 'table2' с использованием процедуры, но она показывает анонимное поведение.Как вставить id auto increment в oracle 11g?

+2

Ваш вопрос неясен, однако на основе заголовка вы нуждаетесь в [ПОСЛЕДОВАТЕЛЬНОСТЬ] (https://docs.oracle.com/database/121/SQLRF/statements_6017.htm#SQLRF01314) – JSapkota

ответ

0

Создание последовательности, как показано ниже:

create sequence id1 start with 1 increment by 1; 

использовать его в коде, как показано ниже:

CREATE OR REPLACE PROCEDURE sp_tab 
IS 
BEGIN 

    INSERT INTO table1 
     SELECT id1.nextval, 
         '', 
         SUBSTR (PRODUCT, 0, INSTR (PRODUCT, ' ') - 1), 
         '' 
     FROM table2 
     WHERE PRODUCT NOT IN ('proved product', 
          'sample', 
          'graphic era', 
          'asa'); 


END;