ORA-27474: cannot give both an argument name and an argument position

文档解释

ORA-27474: cannot give both an argument name and an argument position

Cause: An argument was specified using both a name and a position.

Action: Reissue the command using either the argument name or the argument position but not both.

ORA-27474错误是由用户在提供具有多个参数的函数/过程调用时同时给定参数名称和参数位置引起的。

官方解释

当通过数据库调用带有多个参数的函数(例如PROCEDURE)时,不能同时指定参数名称和参数位置。只允许使用其中一个参数设置来传递参数值。

常见案例

案例1:

/* 创建存储过程,参数a和b */

CREATE OR REPLACE PROCEDURE p_test(a number, b varchar2)

AS

BEGIN

NULL;

END;

/

/* 以参数名称和参数位置方式调用存储过程 */

BEGIN

p_test(a => 1, 2);

此时就会报ORA-27474: 不能同时给出一个参数名称和参数位置的错误,因为在p_test()里的参数a和b类型定义不相同。

一般处理方法及步骤

步骤1:检查代码,确保所有参数的类型是正确的,以防止提供错误的类型信息 。

步骤2:确认调用语句中提供的所有参数是正确的,并且只按照位置或名称之一提供,而不是两者都提供。

步骤3:重新编译存储过程,以允许存储过程正确执行。

你可能感兴趣的