[SQL] IN의 배열 () 절 오라클 PLSQL
SQLIN의 배열 () 절 오라클 PLSQL
내가 저장 프로 시저에 문자열 배열 (plcListchar)를 통과하고, 내가 IN () 절에이 문자열 배열을 사용하고 싶습니다.
내가 IN () 절에 직접 plcListchar을 사용할 수 없습니다. 난 자바에 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 배열을 만들기위한,
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;
당신이 다른 논리를 제시하고자하는 경우, 사용하는 방법을 나에게 제안 시겠어요, 그것은 중대하다.
해결법
-
==============================
1.컬렉션은 PL / SQL에서뿐 아니라, SQL에 정의되어 있음을 가정하면, 테이블 연산자 (당신이 구문 당신은 VARCHAR2의 길이를 지정해야 할 것 valid--되지 게시 된 정의)를 사용할 수 있습니다
컬렉션은 PL / SQL에서뿐 아니라, SQL에 정의되어 있음을 가정하면, 테이블 연산자 (당신이 구문 당신은 VARCHAR2의 길이를 지정해야 할 것 valid--되지 게시 된 정의)를 사용할 수 있습니다
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.
from https://stackoverflow.com/questions/15515772/array-in-in-clause-oracle-plsql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 행되지 존재하는 경우 삽입 신탁 (0) | 2020.05.14 |
---|---|
[SQL] 액세스 테이블이 존재하는지 확인 (0) | 2020.05.14 |
[SQL] 어떻게 PostgreSQL의 행의 최대 수에 관한 제약 조건을 작성하는? (0) | 2020.05.14 |
[SQL] SQL을 사용하여 날짜 범위를 생성 (0) | 2020.05.14 |
[SQL] 왜 우리는 GROUP BY 집계 함수에 필요합니까? (0) | 2020.05.14 |