drop table test_table;
create table test_table(
id number,
modified_on timestamp,
value number,
dur number,
mark_var number
);
insert into test_table
select level, systimestamp + level, level*1, level*2, level*3
from dual connect by level <= 10;
commit;
declare
l_stmt clob;
l_ret integer;
l_cursor integer;
l_modified_on timestamp;
l_value number;
l_dur number;
l_mark_var number;
l_id number;
begin
l_id := 6;
l_value := 332;
l_stmt := 'update test_table
set modified_on =: p_modified_on';
--
l_stmt := l_stmt || chr(10) || ' ,'|| 'value' || ' = :p_value';
l_stmt := l_stmt || chr(10) || ' ,'|| 'dur' || ' = :p_dur';
l_stmt := l_stmt || chr(10) || ' ,'|| 'mark_var' || ' = :p_mark_var';
--
l_stmt := l_stmt ||chr(10) || 'where id = :p_id';
l_cursor := dbms_sql.open_cursor;
dbms_sql.parse(l_cursor, l_stmt, dbms_sql.native);
dbms_sql.bind_variable(l_cursor, 'p_modified_on', l_modified_on);
dbms_sql.bind_variable(l_cursor, 'p_value', l_value );
dbms_sql.bind_variable(l_cursor, 'p_dur', l_dur );
dbms_sql.bind_variable(l_cursor, 'p_mark_var', l_mark_var );
dbms_sql.bind_variable(l_cursor, 'p_id', l_id );
l_ret := dbms_sql.execute(l_cursor);
dbms_sql.close_cursor(l_cursor);
end;
|