为什么oracle plsql varchar2变量需要大小但参数不需要?

gri*_*nch 5 oracle plsql varchar2

假设你有这个程序:

PROCEDURE f (param VARCHAR2)
IS 
   var VARCHAR2(10);
BEGIN
   var := 'hi';
END f;
Run Code Online (Sandbox Code Playgroud)

我想了解为什么var需要指定长度,但param不是.我很难在oracle文档中找到有关这方面的信息.

Jos*_*h B 6

“Oracle 数据库从调用过程的环境中得出参数的长度、精度和小数位数。”

请查看此相关问题

参考:Oracle® 数据库 SQL 参考 10g 第 2 版 (10.2) 请查看语义/参数/数据类型。