Create a function and call it in an if statement : IF « PL SQL Statements « Oracle PL/SQL Tutorial





SQL> CREATE TABLE emp (
  2    id         NUMBER PRIMARY KEY,
  3    fname VARCHAR2(50),
  4    lname  VARCHAR2(50)
  5  );

Table created.

SQL>
SQL> CREATE TABLE books (
  2    isbn      CHAR(10) PRIMARY KEY,
  3    category  VARCHAR2(20),
  4    title     VARCHAR2(100),
  5    num_pages NUMBER,
  6    price     NUMBER,
  7    copyright NUMBER(4),
  8    emp1   NUMBER,
  9    emp2   NUMBER,
 10    emp3   NUMBER
 11  );

Table created.

SQL>
SQL>
SQL> CREATE OR REPLACE FUNCTION Threeemp(p_ISBN IN books.isbn%TYPE)
  2    RETURN BOOLEAN AS
  3
  4    v_emp3 books.emp3%TYPE;
  5  BEGIN
  6    SELECT emp3 INTO v_emp3 FROM books WHERE isbn = p_ISBN;
  7
  8    IF v_emp3 IS NULL THEN
  9      RETURN FALSE;
 10    ELSE
 11      RETURN TRUE;
 12    END IF;
 13  END Threeemp;
 14  /

Function created.

SQL>
SQL> set serveroutput on
SQL>
SQL> BEGIN
  2    FOR v_Rec IN (SELECT ISBN, title FROM books) LOOP
  3      IF Threeemp(v_Rec.ISBN) THEN
  4        DBMS_OUTPUT.PUT_LINE('"' || v_Rec.title || '" has 3 emp');
  5      END IF;
  6    END LOOP;
  7  END;
  8  /

PL/SQL procedure successfully completed.

SQL> drop table books;

Table dropped.

SQL> drop table emp;

Table dropped.










22.1.IF
22.1.1.Conditional Logic
22.1.2.Handling conditions
22.1.3.A Simple Condition Statement
22.1.4.A Simple Condition Statement with BOOLEAN variable
22.1.5.The IF...THEN...ELSE Statement
22.1.6.Use IF THEN ELSE IF
22.1.7.IF...ELSE statements
22.1.8.Using an ELSIF Statement
22.1.9.IF..ELSIF ladder
22.1.10.Block IF statement
22.1.11.IF with ELSE
22.1.12.The Syntax for IF...ELSIF
22.1.13.ELSIF Ladder
22.1.14.The Syntax for Nested IF Statements
22.1.15.Use if with 'IN'
22.1.16.Three valued comparison
22.1.17.JUMP out of a IF statement with goto
22.1.18.Comparing with NULL
22.1.19.If block statement
22.1.20.Create a function and call it in an if statement
22.1.21.PLW-06002: Unreachable code