-
DECLARE
var_remark VARCHAR2(75)
:= 'ABCDEFGHIJ ';
BEGIN
IF ( (var_remark IS NULL)
OR (SUBSTR(
var_remark,
1,
3) <> 'ABC')
OR (SUBSTR(
var_remark,
1,
3) <> 'DEF'))
THEN
DBMS_OUTPUT.put_line(
'THIS IS NOT CORRECT ');
ELSE
DBMS_OUTPUT.put_line(
'THIS IS CORRECT ');
END IF;
END;
If i run this script i am getting THIS IS NOT CORRECT but I should get 'THIS IS CORRECT '
Can any point out what error i am doing. May be i am making a silly mistake.
Thanks
-
This statement resolves to true
since you have three conditions joinen by or's
if only one is true the entire statement is true.
And that is what is hapening.
SUBSTR(var_remark,1,3) <> 'ABC')
-
But I should get the answer as THIS IS CORRECT.
-
at least format properly
Code:
DECLARE
var_remark VARCHAR2(75) := 'ABCDEFGHIJ ';
BEGIN
IF var_remark IS NULL OR SUBSTR(var_remark,1,3) <> 'ABC' OR SUBSTR(var_remark,1,3) <> 'DEF'
THEN
DBMS_OUTPUT.put_line('THIS IS NOT CORRECT ');
ELSE
DBMS_OUTPUT.put_line('THIS IS CORRECT ');
END IF;
END;
/
var_mark 1, 3 is not DEF then condition satisfied therefore THIS IS NOT CORRECT
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|