有如下的存储过程create or replace procedure pro_synchronize(p_args varchar2) asbegin update table_1 t1 set t1.tmp=(select t2.column_x from table_2 t2 where t2.id=t1.id); end;
对于 table_1 和 table_2 ,对于 table_1 中每一条记录,在 table_2 中都有一条对应的记录。执行该存储过程需要传递一个参数,这个参数是 table_2 中的字段名,实现将 table_2 中的指定字段值拷贝到 table_1 的 tmp 字段。即,上文中的t2.column_x需要用参数 p_args 替换,如何实现?
对于 table_1 和 table_2 ,对于 table_1 中每一条记录,在 table_2 中都有一条对应的记录。执行该存储过程需要传递一个参数,这个参数是 table_2 中的字段名,实现将 table_2 中的指定字段值拷贝到 table_1 的 tmp 字段。即,上文中的t2.column_x需要用参数 p_args 替换,如何实现?
create or replace procedure pro_synchronize(p_args varchar2) as
str varchar2(1000):='';
begin
str:='update table_1 t1 set t1.tmp=(select '||p_args||'from table_2 t2 where t2.id=t1.id)';
execute immediate str;
end;
create or replace procedure pro_synchronize(p_args varchar2) as
v_sql varchar2(200);
begin v_sql:= 'update table_1 t1 set t1.tmp=(select '''||p_args ||''' from table_2 t2 where t2.id=t1.id)';
execute immediate v_sql;
commit;end;
create or replace procedure pro_synchronize(p_args varchar2) as
v_sql varchar2(200);
begin v_sql:= 'update table_1 t1 set t1.tmp=(select '||p_args ||' from table_2 t2 where t2.id=t1.id)';
execute immediate v_sql;
commit;end;