IT

배열에 특정 문자열이 포함되어 있는지 확인하는 방법은 무엇입니까?

itgroup 2023. 7. 22. 09:55
반응형

배열에 특정 문자열이 포함되어 있는지 확인하는 방법은 무엇입니까?

저는 줄이 늘어서 있습니다.배열에 특정 문자열이 있는지 확인하고 싶습니다.

DECLARE
  TYPE v_array IS TABLE OF VARCHAR2(200);
  ais_array v_array;
BEGIN
  ais_array := ('Lb1','Lb2','Lb3','Lb613');
  IF 'Lb1' IN ais_array THEN
     dbms_output.put_line('found');
  END IF;
END;

IN연산자가 작동하지 않습니다.저는 해봤습니다.select *유형에 따라 다음을 사용합니다.IN하지만 그것도 효과가 없었습니다.

좋은 의견이라도 있나?

해라member of조건:

IF 'Lb1' member of ais_array THEN
  dbms_output.put_line('found');
END IF;

Oracle은 10g 컬렉션 작업을 위한 여러 세트 연산자를 도입했습니다.자세한 내용은 설명서를 참조하십시오.

MEMBER OF는 중첩된 테이블에만 사용할 수 있습니다.연관 배열에서 사용하려고 합니다."'MEMBER OF' 호출에서 잘못된 번호 또는 인수 유형" 오류가 발생합니다.

사용 방법은 다음과 같습니다.

    DECLARE  
   TYPE clientele IS TABLE OF VARCHAR2 (64);  

   client_list_12    clientele := clientele ('Customer 1', 'Customer 2');  
   client_list_13    clientele := clientele ('Customer 1', 'Customer 3');  

   client_list_133   clientele  
                   := clientele ('Customer 1', 'Customer 3', 'Customer 3');  

   client_list_empty clientele := clientele ();                          
BEGIN  
   IF 'Customer 1' MEMBER OF client_list_12  
   THEN  
      DBMS_OUTPUT.put_line ('Customer 1 is in the 12 list');  
   END IF;  

   IF 'Customer 2' NOT MEMBER OF client_list_13  
   THEN  
      DBMS_OUTPUT.put_line ('Customer 2 is not in the 13 list');  
   END IF;  

   DBMS_OUTPUT.put_line ('List 133 contains ' || CARDINALITY (client_list_133) || ' items');  

   IF client_list_empty IS EMPTY  
   THEN  
      DBMS_OUTPUT.put_line ('Client list is empty');  
   END IF;  

   IF client_list_133 IS NOT EMPTY  
   THEN  
      DBMS_OUTPUT.put_line ('Client list 133 is not empty');  
   END IF;  

END; 

언급URL : https://stackoverflow.com/questions/14578316/how-to-check-if-an-array-contains-a-particular-string

반응형