I've tried to grant roles using OracleQuery (The roles sometimes are made of another roles), first of all I generate the sql at runtime.
QRY_GrantRoles.SQL.clear;
QRY_GrantRoles.SQL.Add('GRANT '+VLS_Sql+ ' TO '+ VSS_CurrentUser);
It works well, but when the number of users grows, the app stops...