Use dbms_sql.bind_variable, dbms_sql.execute to insert value to a table
SQL> SQL> SQL> create table foo ( 2 a integer, 3 b dec( 9, 2 ), 4 c character varying( 30 ), 5 d national char( 3 ) 6 ) 7 / SQL> SQL> declare 2 l_cursor number := dbms_sql.open_cursor; 3 l_ignore number; 4 begin 5 dbms_sql.parse( l_cursor,'insert into foo values ( :n, :c )',dbms_sql.native ); 6 dbms_sql.bind_variable( l_cursor, ':N', 1 ); 7 dbms_sql.bind_variable( l_cursor, ':C', 'Chris' ); 8 l_ignore := dbms_sql.execute( l_cursor ); 9 dbms_sql.bind_variable( l_cursor, ':N', 2 ); 10 dbms_sql.bind_variable( l_cursor, ':C', 'Sean' ); 11 l_ignore := dbms_sql.execute( l_cursor ); 12 dbms_sql.close_cursor( l_cursor ); 13 end; 14 / PL/SQL procedure successfully completed. SQL> select * from foo; N ---------- V ---------------------------------------------------------------------------------------------------- 1 Chris 2 Sean 2 rows selected. SQL> SQL> drop table foo; Table dropped. SQL> --