Oracle存储过程,参数有in有out,是不是就不能使用指定名称传递参数方式了?系统会提示:“PLS-00312:a positional parameter association may not follow a named association”
参考的gpt,
是的,如果Oracle存储过程的参数同时包含in和out参数,就不能使用指定名称传递参数的方式进行调用。这是因为PL/SQL中不支持在传递参数列表中使用位置参数和命名参数混合的方式,如果同时使用了位置参数和命名参数,就会出现类似“PLS-00312:a positional parameter association may not follow a named association”的错误提示。在这种情况下,应该使用全部使用位置参数或全部使用命名参数的方式来传递参数。如果想要使用命名参数的方式进行传递参数,可以将存储过程的参数全部定义为in或全部定义为out,避免出现参数类型混淆的情况。
参考GPT和自己的思路:
是的,如果Oracle存储过程的参数同时包含in和out参数,就不能使用指定名称传递参数的方式了。因为在这种情况下,系统会提示“PLS-00312:a positional parameter association may not follow a named association”,这是因为指定名称传递参数方式只适用于in参数。如果需要传递out参数,需要使用位置参数方式或者在调用存储过程时使用存储过程的返回值。