Как изменить код с FOR на WHILE?(код в теле) - PullRequest
0 голосов
/ 24 октября 2018

У меня есть код, который выполняет поиск по двум цепочкам и дает самую большую цепочку, которую мы можем получить от обеих из них, распечатайте ее и узнайте, какие у нее символы гривы.

пример: если я поставлю 'paris'и' сарикс ', мы получим ari = 3

Теперь мне нужно знать, как сделать это в то время как или другие циклы, но я действительно не знаю, как это сделать, так что если вы могли быпомогите мне, я бы оценил это.

CREATE OR REPLACE PACKAGE calc_cadena AS 
    FUNCTION FNC_CALCULASUB (cadena1 VARCHAR2, cadena2 VARCHAR2) 
    RETURN varchar2; 
END; 

CREATE OR REPLACE PACKAGE BODY calc_cadena AS 
    var_ejemplo number; 
    FUNCTION FNC_CALCULASUB (cadena1 VARCHAR2, cadena2 VARCHAR2) 
    RETURN varchar2 
    IS 
    caden varchar2(1000);   
    conta number(5);       
    BEGIN 
         conta:=0;  
         caden:='';  
         for I in 1..length(cadena2) loop 
             for J in I..length(cadena2) loop 
                 if UPPER(instr(cadena1,substr(cadena2,I,J-I+1)))>0 then 
                    if length(substr(cadena2,I,J-I+1))>conta then     
                        conta:=length(substr(cadena2,I,J-I+1));     
                        caden:=substr(cadena2,I,J-I+1);             
                    end if;
                 end if;
             end loop;
         end loop;

        return caden||'='||to_char(length(caden)); 
    end; 
end;  

SELECT calc_cadena.FNC_CALCULASUB('paris','sarix')
FROM    DUAL;

стараюсь изо всех сил.

...