ORA-31215: DBMS_LDAP: PL/SQL – Invalid LDAP mod value.

文档解释

ORA-31215: DBMS_LDAP: PL/SQL – Invalid LDAP mod value.

Cause: There has been an error in the DBMS_LDAP populate_mod_array operation.

Action: Please check the LDAP mod value that you use for LDAP populate_mod_array operation, or report the error number and description to Oracle Support.

ORA-31215错误

Oracle ORA-31215错误是指在使用DBMS_LDAP包中的PL/SQL程序时,用户输入的LDAP模式值无效。DBMS_LDAP包提供一个非常强大的API,它可以让开发人员将PL/SQL程序集成到其标准LDAP实现中。LDAP模式是更改LDAP实体的属性的一种变更方式。这里某些属性的模式,比如“添加”,“删除”和“替换”,将使用整数范围从1到3来提供。 如果用户没有指定正确的整数值,就会发生ORA-31215错误。

错误说明

ORA-31215错误表明用户输入了无效的LDAP MOD值。 LDAP MOD值是使用DBMS_LDAP包中提供的modify_s及modify_s_nb函数时,必须传递给参数ldap_modlist的模式,它用于表示所请求的LDAP操作,其中1表示添加,2表示删除,3表示替换。如果用户输入的值不在1~3的范围内,就会引发ORA-31215错误。

常见案例

常见案例

加入以下代码以尝试更新LDAP记录:

BEGIN

DBMS_LDAP.modify_s(

ld => ldap_conn,

dn => ‘cn=user1,dc=example,dc=com’,

modlist => ldap_modlist(

ldap_mod_replace,

‘sn’,

‘Smith’));

END;

然而,用户误认为modlist参数值必须 是3,而没有使用ldap_mod_replace参数来替换原始值。于是,用户有可能更改代码如下:

BEGIN

DBMS_LDAP.modify_s(

ld => ldap_conn,

dn => ‘cn=user1,dc=example,dc=com’,

modlist => ldap_modlist(

3,

‘sn’,

‘Smith’));

END;

这将导致ORA-31215错误,因为3是不接受的LDAP MOD值。

解决方法

要解决ORA-31215错误,请仔细检查代码,确保使用正确的LDAP MOD值及参数来执行所需的任务。如果没有,请加入正确的参数和参数值,重新运行PL/SQL程序。例如,回到上面的示例中,你应该替换为下面的代码:

BEGIN

DBMS_LDAP.modify_s(

ld => ldap_conn,

dn => ‘cn=user1,dc=example,dc=com’,

modlist => ldap_modlist(

ldap_mod_replace,

‘sn’,

‘Smith’));

END;

你可能感兴趣的