如何通过PL/SQL中的变量动态插入?

2 sql database insert dynamic

让我们先创建一个表

create table test
(
  id number,
  name varchar2(20)
);
Run Code Online (Sandbox Code Playgroud)

现在在插入期间,我想先将数据保存到变量中,然后像这样将变量动态传递到 VALUES 子句中:

declare
  v_data varchar2(50);
begin
  v_data:='1,sunny';
  execute immediate 'insert into test values(v_data)';
  commit;
end;
Run Code Online (Sandbox Code Playgroud)

但它显示了一些错误(值不够)......请帮助如何实现这一点??

Dhe*_*eer 5

您需要为每个值使用不同的变量

declare 
  v_data1 number
  v_data2 varchar2(50);
begin 
  v_data1 :=1
  v_data2 = 'sunny'; 

  insert into test values(v_data1,v_data2);
  -- Alternatively insert into test (Name) values (v_data2);
commit; 
end;
Run Code Online (Sandbox Code Playgroud)