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:重新编译存储过程,以允许存储过程正确执行。