1. 적으신 내용은 PL/SQL 에서의 주의사항이네요.
예를 들면 다음과 같은 구문이 있는 사용자 함수에서
SELECT * INTO v1, v2, v3 FROM dept WHERE deptno = 10;
dept 테이블의 컬럼이 추가되거나 한다면, 위 함수는 사용할 수 없게 됩니다.
만약 다음과 같이 사용했다면? 문제가 없었겠죠.
SELECT deptno, dname, loc INTO v1, v2, v3 FROM dept WHERE deptno = 10;
아니면 dept%rowtype 형태의 변수를 사용하는 방법도 있습니다.
2. PL/SQL 의 문제 말고 성능 관점에서 보면
SELECT * FROM emp WHERE empno = 7788; 를 사용했을 때와
SELECT empno FROM emp WHERE empno = 7788; 를 사용했을 때
실행계획이 달라짐으로 인해 성능이 달라질 수 있습니다.
정렬을 하는 경우 정렬공간이 낭비될 수 있고
네트웍을 통한 패킷 전송량에도 차이가 나게 됩니다.
꼭 필요한 항목만 적어주는 게 여러모로 좋습니다.