DBMS_SQL insert ... returning into ...
Date: 2000/08/10
Message-ID: <3992E8E3.AA2BF498_at_accelance.fr>#1/1
I Trying to do a generic insert package. It should return a value but it's fail.
How doing that ?
CREATE OR REPLACE PACKAGE BODY accel_dyn AS
PROCEDURE accel_dyn_insert(table_in IN VARCHAR2, column_in IN VARCHAR2,
values_
in IN VARCHAR2, return_field IN VARCHAR2, result OUT VARCHAR2) IS
cursor_handle INTEGER;
status number;
chaine_insert VARCHAR2(1024);
ok_local_id number;
BEGIN
chaine_insert := 'insert into ' || table_in || ' (' || column_in || ') '
|| ' values ' || '(' || values_in || ')';
- don't work : chaine_insert := 'insert into ' || table_in || ' (' || column_in || ') ' || ' values ' || '(' || values_in || ')' || ' returning ' || return_field || ' into ' || 'ok_local_id';
cursor_handle := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE (cursor_handle, chaine_insert, DBMS_SQL.NATIVE);
status := DBMS_SQL.EXECUTE (cursor_handle);
COMMIT;
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
result := ok_local_id;
EXCEPTION
WHEN OTHERS
THEN
result := 'Error : Exception WHEN OTHERS. Msg :
';
result := concat(result, SQLERRM);
ROLLBACK;
DBMS_SQL.CLOSE_CURSOR(cursor_handle);
end accel_dyn_insert;
--
Frédéric LOGIER
fl_at_accelance.fr
ACCELANCE - www.accelance.fr
97, rue Racine - 69100 Villeurbanne
Tel: +33 (0)4 37 43 12 22 / Fax: +33 (0)4 37 43 12 20
Received on Thu Aug 10 2000 - 00:00:00 CEST