急!!请教关于通过存储过程将OID用户插入为Portal用户

[复制链接]
查看11 | 回复0 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
原先在9i上下边代码没有问题,移到到10g上系统报错,跟踪调试发现OID用户已经加上,但是系统执行到 p_user_id := portal.wwsec_api.add_portal_user
(
p_User_Name => p_user_name
);就报错,如何修改?????源代码如下:

CREATE OR REPLACE PROCEDURE "INSPECT_ADDUSER" (
p_user_name in varchar2,
p_user_password in varchar2 )
AS
p_user_id number;
p_group_id number;

--声明oid参数
retval PLS_INTEGER;
emp_sessionDBMS_LDAP.session;
emp_dn VARCHAR2(256);
emp_rdn VARCHAR2(256);
emp_arrayDBMS_LDAP.MOD_ARRAY;
emp_valsDBMS_LDAP.STRING_COLLECTION;
ldap_hostVARCHAR2(256);
ldap_portVARCHAR2(256);
ldap_userVARCHAR2(256);
ldap_passwdVARCHAR2(256);
ldap_baseVARCHAR2(256);
BEGIN
--初始化与oid服务器的连接参数
retval:= -1;
ldap_host:= '192.168.0.111:389';
ldap_port:= 389;
ldap_user:= 'cn=orcladmin';
ldap_passwd:= 'anhui1';
ldap_base:= 'cn=Users,dc=orcl10,dc=com';
--与oid服务器建立连接
DBMS_LDAP.USE_EXCEPTION := TRUE;
emp_session := DBMS_LDAP.init(ldap_host,ldap_port);
retval := DBMS_LDAP.simple_bind_s(emp_session,ldap_user,ldap_passwd);
--插入用户到oid,使该用户成为OID 用户
emp_array := DBMS_LDAP.create_mod_array(14);
emp_vals(1) := p_user_name;
DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'cn',emp_vals);
emp_vals(1) := p_user_name;
DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'sn',emp_vals);
emp_vals(1) := 'test@test';
DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'mail',emp_vals);
emp_vals(1) := 'top';
emp_vals(2) := 'person';
emp_vals(3) := 'inetOrgPerson';
emp_vals(4) := 'organizationalPerson';
emp_vals(5) := 'orclUser';
emp_vals(6) := 'orclUserV2';
DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'objectclass',emp_vals);
emp_vals.DELETE;
emp_vals(1) := p_user_password;
DBMS_LDAP.populate_mod_array(emp_array,DBMS_LDAP.MOD_ADD,'userpassword',emp_vals);
emp_dn := 'cn=' || p_user_name || ', ' || ldap_base ;
-- Add new Entry to ldap directory
retval := DBMS_LDAP.add_s(emp_session,emp_dn,emp_array);
-- Free attribute array (emp_array)
DBMS_LDAP.free_mod_array(emp_array);
--使已经插入OID中的用户成为PORTAL用户
p_user_id := portal.wwsec_api.add_portal_user
(
p_User_Name => p_user_name
);

--与OID服务器断开连接
retval := DBMS_LDAP.unbind_s(emp_session);
end;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行