レコード タイプ (テーブルごとのインデックス) から列にアクセスするための構文を探しています。以下はサンプルコードです。V_Emprec レコード タイプから empid を必要とする Declare ブロックの下で Update スクリプトを実行するにはどうすればよいですか。同じパラメーター(empid)が必要なprocも作成しました。
これは %Rowtype を使用して行うことができますか、それとも emp_stage.empid%type で型を作成する必要がありますか? Empid と Ename の 2 つの TYPE を emp_stg.column_name%type として作成した場合、これらを使用して、Rowtype v_emprec を使用する挿入スクリプトを置き換えることができますか?
これを行う構文を教えてください。
create table emp_master(empid number, ename varchar2(50));
create table emp_stage (empid number, ename varchar2(50));
create procedure update_emp_name(P_empid in emp_master.empid%type)
is
begin
Update emp_stage set ename =INITCAP(ename) WHERE EMPID =P_empid;
commit;
end;
Declare
Type emprec is table of emp_master%rowtype index by pls_integer;
v_emprec emprec;
Begin
Select empid,ename bulk collect into v_emprec from emp_master;
ForAll i in 1..v_emprec.count
Insert into emp_stage values v_emprec(i);
Update emp_stage set ename =INITCAP(ename) WHERE EMPID =v_emprec.empid(i);
/*Need Correct Syntax to use empid from the v_emprec type*/
update_emp_name();
commit;
End;
ありがとう