Oracle向LDAP同步数据,事先要先解决ACL的问题,及LDAP协议中账号密码端口创建,根目录创建,对应导入数组的定义,等工作,才能成功执行以下脚本,不然均会报错。为了保证LDAP的读取效率,在配置文件中,还需要定义数组需要的索引字段。
create or replace procedure JOB_PROSYN_DATA as --创建存储过程
retval PLS_INTEGER; --定义返回
retval_exist PLS_INTEGER; --定义存在返回
my_session DBMS_LDAP.SESSION;
ldap_host VARCHAR(256); --定义LDAP地址
ldap_port VARCHAR(256); --定义LDAP端口
ldap_user VARCHAR(256); --定义LDAP用户
err_msg VARCHAR(256);
ldap_passwd VARCHAR(256); --定义LDAP密码
ldap_base VARCHAR(256); --定义LDAP根路径
mod_user VARCHAR(256); --需要操作的用户dn
my_array dbms_ldap.MOD_ARRAY;
my_vals dbms_ldap.STRING_COLLECTION;
my_message dbms_ldap.MESSAGE;
my_attrs dbms_ldap.STRING_COLLECTION;
last_update date; --最后更新时间
status_cd_str VARCHAR(256); --状态
staff_account_str VARCHAR(256); --员工账号字段
cursor getStaffAccountCur(lastD date) is --定义游标
select * from () t where; --将查询结果写入游标
begin
retval := -1;
retval_exist := -1;
ldap_host := '13x.xxx.xxx.xxx'; --LDAP服务器IP地址
ldap_port := 'xxxx'; --LDAP服务器端口
ldap_user := 'cn=admin,dc=xxxx1,dc=com'; --管理员dn
ldap_passwd := 'xxxxxxx'; --管理员密码
ldap_base := 'dc=xxxx1,dc=com';
dbms_ldap.USE_EXCEPTION := TRUE; --打开异常
er