首先,恭喜你猜对了,要去掉参数。
想必这个规定是oralce本身定义好的规则。
仔细推敲一下,我想道理是这样的:
假设规定了传入参数的长度,一旦你传入的实际变量的长度超过定义的长度,那oralce怎么办? 还需要增加校验和提示吧?
这样以来莫不如不超过该类型的长度即可,大家用起来也方便:)
猜想你是和定义变量弄混了。变量的定义是要指定长度的。
动态SQL
using out v_erortx意思是insert into tab()......"这句中的变量用传出参数v_erortx绑定,比如动态SQL中有一个过程,而该过程的有个OUT 参数,此时就可以用USING OUT 的方式
Execute Immediate 'begin mypro1(:1,:2); end;'
Using In 1,Out v_erortx;
请参考
MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地
参数不允许精度,比如可以number,varchar2,不能使用number(2)、varchar2(2)