아마도 CSV를 사용하는 것이 요소가 문자열을 포함하지 않는다는 것을 100 % 확신 할 수 있다고 가정 할 때 가장 간단한 방법 일 것입니다.
이 작업을 수행하는 다른 방법은 아마도 사용자 지정 형식을 문자열 테이블로 만드는 것입니다. 당신의 문자열이 결코 이상 100 자 이상 없었다 가정하면, 당신은 할 수 :
CREATE TYPE string_table AS TABLE OF varchar2(100);
그런 다음 저장 프로 시저에이 유형의 변수를 전달하고 직접 참조 할 수 있습니다. 이 같은 귀하의 경우에는, 뭔가 :
FUNCTION EXECUTE_UPDATE(
identifierList string_table,
value int)
RETURN int
IS
BEGIN
[...other stuff...]
update table1 set col1 = col1 - value
where id in (select column_value from table(identifierList));
RETURN SQL%ROWCOUNT;
END
table()
기능을 사용하면 다음 다른 테이블처럼 처리 할 수 단일 열 "COLUMN_VALUE"와 함께 테이블에 사용자 정의 유형을 전환은 (그렇게이에, 조인 케이스, subselects).
execute_update(string_table('foo','bar','baz'), 32);
을 당신이에서 프로그래밍 방식으로이 명령을 구축 처리 할 수 있으리라 믿고있어 :
이의 아름다움은 오라클이 저장 프로 시저를 호출 할 때 그래서 당신은 간단하게 쓸 수 있습니다, 당신을 위해 생성자를 만들 것입니다 기음#.
제 회사로서 제 회사에서는 문자열, 복식, 정수 등의 목록에 표준으로 정의 된 이러한 사용자 정의 유형이 많이 있습니다. 또한 이러한 유형의 Java 객체를 직접 매핑 할 수 있도록 Oracle JPublisher을 사용합니다. 주위를 둘러 보았지만 C#과 직접적인 상응하는 것을 볼 수 없었습니다. 그냥 자바 devs이 질문을 가로 질러 온 경우에 내가 언급 한 줄 알았는데.
요약 - CSV는 오라클이 하나의 문자열로 취급하므로 자체적으로 작동하지 않습니다. – sarsnake
'... from string_table (identifierList))이 아니어야합니다. ... '? –