SELECT *
should be avoided because it releases control of the returned columns and could therefore lead to errors and potentially to
performance issues.
Noncompliant code example
DECLARE
myvar CHAR;
BEGIN
SELECT * INTO myvar FROM DUAL; -- Noncompliant
END;
/
Compliant solution
DECLARE
myvar CHAR;
BEGIN
SELECT dummy INTO myvar FROM DUAL;
END;
/
Exceptions
Wrapper queries using ROWNUM
are ignored.
SELECT *
FROM ( SELECT fname, lname, deptId
FROM employee
ORDERBY salary
)
WHERE rownum <= 10