CREATE OR REPLACE FUNCTION sqlimmediate (str IN string) RETURN INTEGER AS cursor_name INTEGER; rows_processed INTEGER; BEGIN cursor_name := DBMS_SQL.open_cursor; DBMS_SQL.parse (cursor_name, str, DBMS_SQL.v7); rows_processed := DBMS_SQL.execute (cursor_name); DBMS_SQL.close_cursor (cursor_name); RETURN rows_processed; EXCEPTION WHEN OTHERS THEN DBMS_SQL.close_cursor (cursor_name); RAISE; END; ------------- declare sSql varchar(4000); iDummy integer; begin sSql := 'create table AccRegistrOtklAmort_Prm ( dBegin date, dEnd date, nCodBr number, nCodplan number, nCodplant number, nExParam number, nExParam1 number, nExParam2 number, nExParam3 number)'; iDummy := SqlImmediate(sSql); end;