2016-10-27 10 views
0

Documentum 데이터 소스에 연결된 JavaFx 프로젝트를 수행하고 있습니다. group1, group2, group3 그룹이 있다고 가정 해 보겠습니다. acl_names을 모두 으로 only and exactly 그룹 인 dm_acl에서 어떻게 쿼리 할 수 ​​있습니까? 다음 쿼리를 사용하여 예를 들어 나는 특정 ACL의 r_accessor_name 얻을 수 있습니다 :동일한 권한 집합을 동시에 부여하는 dm_acl의 개체를 가져 오는 방법

select r_acceessor_name from dm_acl where object_name = 'My_acl_name' enable (row_based) 

을 출력은 다음과 같습니다

group1 
group2 
group3 

하지만 내가하고 싶은 것은이 .I've의 역입니다 내가 시도 OR 다음

select object_name from dm_acl where r_accessor_name = 'group1' or r_accessor_name = 'group2' or r_accessor_name = 'group3' enable (row_based) 

그러나 출력에 문제가 있기 때문에 키워드의 의미가있는 너무 일반적 점이다 : 다음 쿼리를 시도 이 : 너무 구체적이다

select object_name from dm_acl where r_accessor_name = 'group1' and r_accessor_name = 'group2' and r_accessor_name = 'group3' enable (row_based) 

==> 당신은 자신에게 당신이 생각할 수있는 것보다 더 많은 혼란

+0

당신은 매우 혼란스러운 질문을했습니다. 할머니 께 질문을 한 다음 여기에 적어보십시오. 먼저 해결해야 할 필요 또는 문제, 그리고 무엇을했는지. – Miki

+0

@Miki 질문은 –

+0

btw로 업데이트됩니다. Documetnum과 관련된 모든 질문에 대해 프로젝트를 시작하십시오. 그것은 무관하다 – Miki

답변

1

제로 출력. 모든 ACL 객체는 두 개 이상의 항목을 포함합니다. dm_ownerdm_world 첫 번째 항목은 저장소 소유자를 나타내며 마지막 항목은 저장소의 모든 사용자를 나타냅니다. 그것 때문에 당신의 목표

... 모든

을 달성 할 수없는 acl_names ... 만 정확히이 그룹이 dm_acl에서. 이 옆 그러나 , 쿼리

SELECT object_name FROM dm_acl 
WHERE r_accessor_name = 'group1' 
AND r_accessor_name = 'group2' 
AND r_accessor_name = 'group3' 
ENABLE (ROW_BASED) 

는 당신이 얻을 수있는 최선이다. 문제는 최소한이 세 그룹을 포함하는 ACL이 저장소에 없다는 것입니다. 이것은 당신의 초기 질문으로 인도합니다. 당신이 당신의 질문을 일반화하기에는 너무 많이 시도했거나, 당신이 그 중요한 부분을 생략했다는 잘못된 가정을했는지. ;)

+2

WHERE 절의 조건이 항상 일치 할 수 없기 때문에 쿼리가 항상 0 행을 반환한다고 생각합니다. ROW_BASED 힌트를 사용하면 결과 집합의 각 행에는 속성 반복에 대해 정확히 하나의 값이 있으므로 'a'AND 'b'라는 이름의 객체를 제공하려고하면 아무 것도 반환하지 않습니다. – Sergi

1

나는 당신의 마음을 읽고 당신이 정말로 필요에 와서 생각 :

SELECT object_name FROM dm_acl 
WHERE r_accessor_name IN ('group_A', 'group_B', 'group_C') 
GROUP BY object_name 
HAVING COUNT(DISTINCT r_accessor_name) = 2 
ENABLE (row_based) 

이 그것을 시도하고 그것이 작동 있을지를 참조하십시오.