2016-10-24 5 views
0

필자는 열에 매개 변수를 사용해야하며 열은 null을 허용하지 않습니다. 그러나 매개 변수는 기본적으로 null입니다. null 값을 어떻게 제어합니까? 왜냐하면 가치를 부여하지 않을 때 null로 값을 고려하고 스크립트가 실패하기 때문입니다. 당신의 도움이 예 감사하겠습니다 -오라클 plsql 매개 변수 기본값 null

절차 TEST1 (P_1 번호 기본 널) 로하는 선택 COL1, 표 에서 COL2을 시작을 만들 경우 COL1 = P_1 - 기본 NULL;
끝; /

enter code here 
+0

그럼, 값 하나가 호출에 제공되지 않는 경우 열에 넣고 싶어 ? null 대신 사용할 항목이 있어야합니다. 또는 인수가 null 인 경우 모든 값을 선택 하시겠습니까? (* into * something ...을 선택해야만합니다.) –

+0

안녕하세요 alex, 값을 입력하지 않으면 구문은 무시하고 실행 조건없이 실행합니다. 기본적으로 나는 2 개의 매개 변수를 사용해야하는데, 1은 값을 넣고 다른 하나는 기본 null입니다. 그래서 ,,,,, whrere col1 = p_1, col2 = p_2와 같습니다. 그리고 p_2는 값을 넣을 것이고 p_1은 기본 null이 될 것입니다 – Ronnie710

+0

알렉스, 나는 절을 넣었습니다. – Ronnie710

답변

1

는 조건부 쿼리 필터를 만들기 위해 or를 사용할 수 있습니다 인수를 전달되지 않았다 하나 때문에 p_1는, null의 경우, 또는 인수는 먼저, null의

select col1, col2 
bulk collect into some_collectin 
from table1 
where p_1 is null or col1 = p_1 

경우 부분 일치 - 모든 행에 적용됩니다. 그것이 null가 아닌 경우, 최초의 부분은 모든 행과 일치하지 않기 때문에, 평등 체크가 적용되어 인수와 일치하는 행만을 필터 처리합니다. 다른 조건이 다음하기 위해 괄호를 사용하는 것을 기억하는 경우

확실히 전체 논리가 맞다 :

where (p_1 is null or col1 = p_1) 
and ... 
+0

알렉스가 작동했습니다. 고마워. 나는 아침부터 고생하고 있었다. – Ronnie710