쿼리 결과의 두 레코드를 비교하고 쿼리 결과간에 변경된 열만 표시하는 Oracle Pipelined Function을 원합니다.두 레코드를 비교하여 차이 만 표시
1
A
답변
2
그것은 당신이 원하는 꽤 무엇을, 그러나 OracleFAQ에 케빈 미드의 블로그는 나를 위해 작동하는 솔루션이 있습니다
3
다음은 문제에 대한 무딘 도구 접근 방식입니다. 이 테스트 데이터 주어진 그래서
create or replace function col_diff
(p_empno_1 in emp.empno%type
, p_empno_2 in emp.empno%type)
return col_nt pipelined
is
out_val col_t := new col_t(null, null, null);
emp_rec1 emp%rowtype;
emp_rec2 emp%rowtype;
begin
select *
into emp_rec1
from emp
where empno = p_empno_1;
select *
into emp_rec2
from emp
where empno = p_empno_2;
if emp_rec1.ename != emp_rec2.ename
then
out_val.col_name := 'ENAME';
out_val.old_val := emp_rec1.ename;
out_val.new_val := emp_rec2.ename;
pipe row (out_val);
end if;
if emp_rec1.hiredate != emp_rec2.hiredate
then
out_val.col_name := 'HIREDATE';
out_val.old_val := to_char(emp_rec1.hiredate, 'DD-MON-YYYY');
out_val.new_val := to_char(emp_rec2.hiredate, 'DD-MON-YYYY');
pipe row (out_val);
end if;
return;
end;
/
, ...
SQL> select empno, ename, hiredate
2 from emp
3 where empno > 8100
4/
EMPNO ENAME HIREDATE
---------- ---------- ---------
8101 PSMITH 03-DEC-10
8102 PSMITH 02-JAN-11
SQL>
... 우리는이 출력을 얻을 : 이제
SQL> select * from table (col_diff(8101,8102))
2/
COL_NAME
------------------------------
OLD_VAL
-------------------------------------------------------------------
NEW_VAL
-------------------------------------------------------------------
HIREDATE
03-DEC-2010
02-JAN-2011
SQL>
를 doubtlessly 당신이 뭔가를 싶습니다 덜 장황하다. 11g에서 소개 된 향상된 메소드 4 동적 SQL을 사용하여 무언가를 할 수 있다고 생각합니다. 아아, 당신은 10g을 사용한다고 말합니다.
관련 문제
- 1. Eclipse에서 두 나무의 차이 표시
- 2. 두 문자열을 비교하여 차이를 얻으십시오
- 3. 두 날짜 사이의 시차 차이
- 4. 아이폰이 두 과제의 차이
- 5. 두 쿼터니온 사이의 '차이'
- 6. 두 제목의 차이 얻기
- 7. 날짜 표시 Html.textbox의 날짜 차이
- 8. 두 개 이상의 테이블을 비교하여 ModelChoiceField 채우기
- 9. 이 두 배열을 비교하여 일치하는지 확인하는 방법
- 10. C에서 두 이미지의 차이 추출 #
- 11. 두 개의 JPEG 이미지 비교 및 차이 표시
- 12. git에서 두 개의 커밋에 대한 병합되지 않은 차이 표시
- 13. iPhone 4.0에서 시뮬레이터와 비교하여 표시되는 라벨 높이의 차이
- 14. Recordset 만 1000 레코드를 반환합니다.
- 15. php mysql이 두 열을 비교하여 불일치를 비교했습니다.
- 16. 두 데이터 세트를 비교하여 동등성을 비교하는 방법
- 17. 스몰 토크 - 두 문자열을 비교하여 동일성을 비교하십시오.
- 18. Javascript에서 두 숫자를 비교하여 기호를 무시합니다.
- 19. OpenCV는 두 이미지를 비교하여 다른 픽셀을 얻습니다.
- 20. MySQL : 두 결과 집합의 차이
- 21. 두 배열의 최소 차이 찾기
- 22. 두 노드 간의 차이 계산
- 23. 일반 색상 만 표시
- 24. 두 수치 변수를 비교하여 두 점 차이가 있는지를 알려줍니다.
- 25. gnuplot : 뿌리 만 표시
- 26. 최소한 하나의 연결 만 사용하여 레코드를 검색하십시오.
- 27. 차이
- 28. 두 사각형 사이의 차이 (XOR)는 사각형입니까?
- 29. 격자에 레코드를 표시 할 라이브러리
- 30. 차이
그것 '이'파이프 라인 기능을해야합니까를? –