2016-12-22 51 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; 

使用過程將creatin從表'table2' 中插入表'table1'的過程,但它顯示匿名行爲。如何在oracle 11g中插入id自動增量?

+2

你的問題不清楚,但是稱號的基礎上,您需要的[SEQUENCE] (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; 
相關問題