2010-05-17 75 views
2

我今天討論了一個我之前寫過的Oracle過程。使用PL/SQL從Active Directory獲取用戶數據

我想使用PL/SQL從Active Directory獲得7500個用戶的電子郵件地址。 AD將返回最多1000行,而Oracle使用的LDAP提供程序將不支持分頁。

因此,我的解決方案是過濾sAMAccountName(* 00,* 01,* 02等)的最後兩個字符。這會導致126個查詢(100個帳號名稱以數字結尾,26個以字母結尾......這足以滿足我的AD設置)。

我跟他說話的人(這是一次面試)說他可以做得更好,但他不會告訴我那是什麼方法。

有人可能會猜測這個方法是什麼嗎?

回答

0

如果結果集按名稱排序,您可以只要求名稱大於最後一個名稱的下一個1.000。 並重復它,直到你得到低於1.000或沒有更多的結果。

+1

好的建議,不幸的是,OpenLDAP提供程序不支持排序,並且結果不會返回按sAMAccountName排序。 – 2010-05-21 13:51:36

1

作爲求職面試的問題,真的很微不足道,我不知道他們需要的技能,但在我看來這是一個奇怪的「Oracle」問題,因爲它需要詳細瞭解Microsoft AD,但沒有特別PL/SQL知識。你可能不得不說要使用屬性範圍檢索。 在這裏它被解釋爲 http://msdn.microsoft.com/en-us/library/Aa772308

+0

OpenLDAP也不支持。 – 2010-06-10 13:18:25

相關問題