Código
SET serveroutput ON DECLARE priv1 NUMBER(2); priv2 NUMBER(2); priv3 NUMBER(2); priv4 NUMBER(2); privilegios varchar2(512); cadena varchar2(1000); BEGIN priv1:=1;--privilegio de insert priv2:=1;--privilegio de update priv3:=0;--privilegio de delete priv4:=1;--privilegio de select IF priv1 > 0 THEN privilegios:='INSERT'; END IF; IF priv2 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'UPDATE'; END IF; IF priv2 > 0 AND privilegios IS NULL THEN privilegios:='UPDATE'; END IF; IF priv3 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'DELETE'; END IF; IF priv3 > 0 AND privilegios IS NULL THEN privilegios:='DELETE'; END IF; IF priv4 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'SELECT'; END IF; IF priv4> 0 AND privilegios IS NULL THEN privilegios:='SELECT'; END IF; cadena:='grant '||privilegios||' on '||' tab_estudiante '||' to '||' my_usuario'; dbms_output.put_line(cadena); END;