A Better Routine to Check Social Security Numbers : CHAR VARCHAR2 Functions « PL SQL Data Types « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> create or replace function f_validSSN_yn (i_ssn_tx VARCHAR2) return VARCHAR2
  2  is
  3      v_out_tx         VARCHAR2(1);
  4      v_temp_string_tx VARCHAR2(256);
  5
  6  begin
  7      if i_ssn_tx is null then
  8          v_out_tx:='N';
  9      elsif length(i_ssn_tx)!=11 then
 10          v_out_tx:='N';
 11      else
 12          v_temp_string_tx:=
 13            translate(i_ssn_tx,'?-0123456789','?');
 14          if v_temp_string_tx is not null
 15          then
 16              v_out_tx:='N';
 17          else
 18              if length(replace(i_ssn_tx,'-'))=9 then
 19                  v_out_tx:='Y';
 20              else
 21                  v_out_tx:='N';
 22              end if;
 23          end if;
 24      end if;
 25
 26      return v_out_tx;
 27  end;
 28  /

Function created.

SQL>
SQL> select f_validSSN_yn('12345678') from dual;

F_VALIDSSN_YN('12345678')
--------------------------
N

Quote from:

Oracle PL/SQL For Dummies (Paperback)

by Michael Rosenblum (Author), Paul Dorsey (Author)

# Paperback: 414 pages

# Publisher: For Dummies (June 13, 2006)

# Language: English

# ISBN-10: 0764599577

# ISBN-13: 978-0764599576









21.5.CHAR VARCHAR2 Functions
21.5.1.Useful character built-in functions
21.5.2.Compare char type value with blank space
21.5.3.Compare char type value with 'trim'
21.5.4.The most useful character specifications are
21.5.5.ASCII
21.5.6.SUBSTR
21.5.7.INSTR
21.5.8.Use the SUBSTR and INSTR at the same time.
21.5.9.REPLACE
21.5.10.TRANSLATE
21.5.11.PAD, RPAD, LPAD
21.5.12.TRIM
21.5.13.Extending your options with regular expressions
21.5.14.A Better Routine to Check Social Security Numbers