1

既存のストアド プロシージャに変更を加えたいと考えています。テーブルに値を挿入します。最初の値はシーケンスから取得され、他の値は異なる必要があります。

create SP_Emp()
.......
insert into table_emp(primary_key,name,dept,sal,id)
select distict
seq_emp.nextval,
first_value(name) over partition by(id),
id as id,
.....
.....
END;

それが与えるエラーは、ここでは許可されていないシーケンス番号です。

seq.nextval行内の と他のすべての値を区別したまま、値を挿入したい

以前の手順は次のとおりです。

create SP_Emp()
.......
insert into table_emp(name,dept,sal,id)

select distict

first_value(name) over partition by(id),
id as id,
.....
.....

END;
4

1 に答える 1

4

SQL ステートメントをインライン ビューとして括弧で囲み、次のシーケンスを追加します。

create SP_Emp()
.......
insert into table_emp(primary_key,name,dept,sal,id)
select seq_emp.nextval, s.*
from (
    select distinct
    first_value(name) over partition by(id),
    id as id,       
.....
        ) s
.....
END;
于 2012-10-04T23:14:37.397 に答える