0
1つの表に50の列があり、各列を更新する必要があります。 以下のplsqlコードを試してみてください。 (コメントの更新セクションが動作しています)。Oracleカーソルの列を動的に変更
しかし、動的に生成された列は受け付けません。 (PL/SQL:ORA-01747:無効なuser.table.column、table.columnまたはcolumnの指定) 誰も助けてくれますか?
DECLARE
cursor udas is
select 5109 as udaid from dual
union all
select 8209 as udaid from dual;
BEGIN
for uda in udas loop
DECLARE
cursor c1 is
select
x.item, x.uda_id, x.uda_value, x.uda_value_desc
from
hp2_uda_data x
where
x.uda_type='LOV'
and x.uda_id=uda.udaid;
begin
for i in c1 loop
begin
/*update testtable set item_uda_5109_v=i.uda_value,
item_uda_5109_d=i.uda_value_desc where item_code=i.item;*/
update testtable set 'item_uda_'||uda.udaid||'_v'=i.uda_value,
'item_uda_'||uda.udaid||'_d'=i.uda_value_desc where item_code=i.item;
end;
end loop;
commit;
end;
end loop;
END;
ありがとうございました。本当に役に立ちました。 –
うれしかったですが、「ありがとうございました」というコメントはSOにはお勧めできません:https://stackoverflow.com/help/someone-answers –