두 가지 절차가 있습니다. 프로 시저 1에서 두 번째 프로 시저를 호출하면 테이블을 출력 매개 변수로 리턴합니다. 때때로 프로 시저 2가 두 번 이상 호출 될 수 있습니다. 문제는 절차 2에서 얻은 모든 것을 하나의 테이블로 병합하거나 추가하는 방법입니다.
테이블 유형은 사용자 정의입니다 :
CREATE OR REPLACE TYPE t_record AS OBJECT
(
i NUMBER,
city_name VARCHAR2(100)
);
create or replace type t_table as table of t_record;
나는
MULTISET UNION ALL
에 대해 알고있다
, 그러나 절차 1 내에서 절차 2가 몇 번이나 호출되는지 모르기 때문에 사용이 불가능 해 보입니다.
어떻게해야합니까? 어쩌면 내가하는 모든 일이 잘못되어 더 나은 방법이있을 수 있습니다. 제안을 듣고 기뻐할 것입니다.
FOR @hotfix
절차 1의 코드를 단순화했습니다. 실제로 루프와 사후 루프 내에서 절차 2를 호출합니다.
FOR insurance_program IN insurance_programs LOOP
IF insurance_program.level_of_service = 'additional' THEN
Procedure2(client_id, 2, insurance_program.program_id, avaliable_cities);
END IF;
END LOOP;
Procedure2(client_id, 1, 1, avaliable_cities);
-
답변 # 1
관련 자료
- lua - 중첩 테이블의 인덱스를 함수 인수로 전달합니까?
- javascript - 중첩 배열을 병합하는 가장 좋은 방법은 무엇입니까
- Kotlin에서 중첩 된지도를 병합하는 방법
- 자바 스트림 - 목록의 값과 중첩 된 목록의 값을 하나의 목록으로 병합
- time - 파이썬에서 2 개의 테이블을 사용자 및 타임 스탬프와 병합하는 방법
- google bigquery - 큰 쿼리에서 중첩 열 병합
- javascript - 중첩 된 JSON에서 두 개의 배열 병합
- object - 자바 스크립트 스프레드 연산자에서 중첩 키와 병합하는 방법은 무엇입니까?
- 파이썬 매개 변수 유형 힌트가 중첩 유형 정보를 지원합니까?
MULTISET UNION ALL
사용 반환하는 배열에 추가하려면 다음을 수행하십시오.예:
출력:
db<>여기에서 바이올린