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

プロシージャを使用してテーブル 'table2'からテーブル 'table1'にidを挿入するためのCreatinプロシージャですが、匿名の動作を示します。oracle 11gにid auto incrementを挿入する方法は?

+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; 
関連する問題