Chelodelsur...
En oracle en vez de usar IF debes usar
CASE.
El order by aleatorio se hace así:
ORDER BY DBMS_RANDOM.VALUE;
En cuanto a las variables de usuario... Esa si no me la sé...
Se que existen las variables de sustitución, en la que haces algo similar. Por ejemplo
Código SQL:
Ver originalSELECT *FROM tabla WHERE campo= '&DIGITE_CONDICION';
Esto muestra antes de la ejecución de la sentencia, la opción para ingresar el valor que quieres validar en la consulta.
Sigo averiguando la generación de variables en tiempo de ejecución como sería la sintaxis para oracle.
El resto de la sentencia es totalmente compatible.
Espero haberte ayudado.
saludos