Jul*_*es 1 oracle toad plsql stored-procedures
我在这里查询了一些问题以及在线观看和观看视频,但我仍然感到困惑的是IN,OUT.我问的原因是因为我正在编写一个程序,根据其他程序中的IN参数记录错误,
干杯!
这里的Oracle文档很好地解释了:
参数的模式指示参数是将数据传递给过程(
IN),从过程(OUT)返回数据,还是可以同时执行两者(IN OUT).
关于OUT参数具体:
...您无法使用它将值传递给过程.即使在为其分配了值之后,也无法在过程中读取其值.
编辑
实际上,虽然上面提供的信息是有效的,但我链接到一个糟糕的资源(Ada Programmer's Guide的SQL*模块).
可以在此处找到更好,更完整的资源以更好地理解3种模式:表8-1 PL/SQL子程序参数模式.
IN模式:
默认模式
将值传递给子程序.
形式参数的作用类似于常量:当子程序开始时,其值是其实际参数或默认值的值,子程序不能更改此值.
实际参数可以是常量,初始化变量,文字或表达式.
实际参数通过引用传递.
OUT 模式:
必须指定.
返回调用者的值.
正式参数初始化为其类型的默认值.该类型的默认值是
NULL具有非NULL默认值的记录类型除外.当子程序开始时,无论其实际参数的值如何,形式参数都具有其初始值.Oracle建议子程序为formal参数赋值.
如果形式参数类型的默认值为
NULL,则实际参数必须是其数据类型未定义为的变量NOT NULL.默认情况下,实际参数按值传递; 如果您指定
NOCOPY,则可以通过引用传递.
IN OUT 模式:
必须指定.
将初始值传递给子程序并将更新的值返回给调用者.
形式参数的作用类似于初始化变量:当子程序开始时,其值是其实际参数的值.Oracle建议子程序更新其值.
实际参数必须是变量(通常,它是字符串缓冲区或数字累加器).
默认情况下,实际参数按值传递(在两个方向上); 如果您指定
NOCOPY,则可以通过引用传递.