CREATE OR REPLACE FUNCTION COUNT_ACGT_BASES (p_sequence IN VARCHAR2) RETURN VARCHAR2 AS i_a binary_integer default 0; i_c binary_integer default 0; i_g binary_integer default 0; i_t binary_integer default 0; /* || This Function returns a varchar2 string of the number of BASES in a sequence. For use by PSP. || Written by: Daniel Coe || Date: 13/08/2002 */ BEGIN BEGIN -- Loop around the sequence and set the rows to 50chars. for y in 1..length(p_sequence) loop IF substr (p_sequence, y, 1) = 'A' THEN i_a := i_a + 1; ELSIF substr (p_sequence, y, 1) = 'C' THEN i_c := i_c + 1; ELSIF substr (p_sequence, y, 1) = 'G' THEN i_g := i_g + 1; ELSIF substr (p_sequence, y, 1) = 'T' THEN i_t := i_t + 1; END IF; end loop; END; return 'A: ' || i_a || ' C: ' || i_c || ' G: ' || i_g || ' T: ' || i_t; END; /