반응형
IN() 절 oracle PLSQL의 배열
String array(plcListchar)를 StoredProcedure에 전달하고 있습니다. IN() 절에서 이 String array를 사용하고 싶습니다.
IN() 절에서 plcListchar를 직접 사용할 수 없습니다.JAVA에서 plcListchar 문자열 배열을 만드는 방법을 보여드리겠습니다.
String array[] = {"o", "l"};
ArrayDescriptor des = ArrayDescriptor.createDescriptor("CHAR_ARRAY", con);
ARRAY array_to_pass = new ARRAY(des,con,array);
callStmtProductSearch.setArray(4, array_to_pass);
CHAR_ARRAY를 생성하는 데 사용됩니다.
create or replace type CHAR_ARRAY as table of varchar2;
저는 IN 절에서 plcListchar를 사용하고 싶습니다.다음은 나의 저장 프로시저입니다.
CREATE OR REPLACE PROCEDURE product_search(
status IN varchar2,
plcList IN varchar2,
i_culture_id IN number,
plcListchar IN CHAR_ARRAY,
status_name OUT varchar2,
culture_code OUT varchar2)
AS
CURSOR search_cursor IS
SELECT p.status_name, p.culture_code
FROM PRISM_ITEM_cultures@prism p
WHERE p.publishable_flag=1
AND p.isroll =0
AND status = '-1'
AND p.plc_status IN ( );
BEGIN
OPEN search_cursor;
FETCH search_cursor INTO status_name, culture_code ;
CLOSE search_cursor;
END;
어떻게 사용해야 하는지 알려주실 수 있나요, 다른 논리를 제안하고 싶다면, 그것은 좋습니다.
컬렉션이 PL/SQL뿐만 아니라 SQL에서도 정의되어 있다고 가정하면 다음과 같이 사용할 수 있습니다.TABLE연산자(게시한 정의는 구문적으로 유효하지 않습니다. 당신은 다음에 대한 길이를 지정해야 합니다.VARCHAR2)
AND p.plc_status IN (SELECT column_value
FROM TABLE( plcListchar ))
제가 당신의 테이블을 가지고 있지 않기 때문에, 예를 들어,SCOTT스키마
SQL> create type ename_tbl is table of varchar2(30);
2 /
Type created.
SQL> ed
Wrote file afiedt.buf
1 declare
2 l_enames ename_tbl := ename_tbl( 'KING', 'SMITH' );
3 begin
4 for i in (select *
5 from emp
6 where ename in (select column_value
7 from table( l_enames )))
8 loop
9 dbms_output.put_line( 'ENAME = ' || i.ename );
10 end loop;
11* end;
SQL> /
ENAME = KING
ENAME = SMITH
PL/SQL procedure successfully completed.
언급URL : https://stackoverflow.com/questions/15515772/array-in-in-clause-oracle-plsql
반응형
'programing' 카테고리의 다른 글
| 다른 분기의 커밋된 복사본이 있는 파일의 현재 작업 복사본 (0) | 2023.07.06 |
|---|---|
| newidsql server 함수 내부 (0) | 2023.07.06 |
| 파이썬을 사용하여 암호로 보호된 엑셀 파일을 여는 방법은 무엇입니까? (0) | 2023.07.01 |
| Vuex: 알 수 없는 작업 유형: (0) | 2023.07.01 |
| Typescript + Express: 'type of e' 유형에 호환되는 호출 서명이 없습니다. (0) | 2023.07.01 |