Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Operators
 

Use the LIKE operator

SQL> SQL> set feedback on escape ~ SQL> SQL> CREATE TABLE authors (   2    id         NUMBER PRIMARY KEY,   3    first_name VARCHAR2(50),   4    last_name  VARCHAR2(50)   5  ); Table created. SQL> SQL> INSERT INTO authors (id, first_name, last_name)   2    VALUES (1, 'Marlene', 'Theriault'); 1 row created. SQL> SQL> INSERT INTO authors (id, first_name, last_name)   2    VALUES (2, 'Rachel', 'Carmichael'); 1 row created. SQL> SQL> INSERT INTO authors (id, first_name, last_name)   2    VALUES (3, 'James', 'Viscusi'); 1 row created. SQL> SQL> COMMIT; Commit complete. SQL> SQL> SET SERVEROUTPUT ON ESCAPE OFF SQL> SQL> CREATE OR REPLACE PROCEDURE author_sel (   2     i_last_name IN AUTHORS.LAST_NAME%TYPE,   3     cv_author IN OUT SYS_REFCURSOR)   4  IS   5     v_last_name AUTHORS.LAST_NAME%TYPE;   6  BEGIN   7   8     v_last_name := '%'||UPPER(i_last_name)||'%';   9  10     OPEN cv_author FOR  11     SELECT id, first_name, last_name  12     FROM authors  13     WHERE UPPER(last_name) LIKE v_last_name;  14  15  EXCEPTION  16     WHEN OTHERS  17     THEN  18        DBMS_OUTPUT.PUT_LINE(sqlerrm);  19  END;  20  / Procedure created. SQL> SQL> COL first_name FORMAT A20 SQL> COL last_name FORMAT A20 SQL> SQL> VARIABLE x REFCURSOR SQL> EXEC author_sel('u', :x) PL/SQL procedure successfully completed. SQL> SQL> print x         ID FIRST_NAME           LAST_NAME ---------- -------------------- --------------------          1 Marlene              Theriault          3 James                Viscusi 2 rows selected. SQL> drop table authors; Table dropped.