NAME_IN和COPY实际是间接引用,类似指针传递,而不是值传递...
IF :VAR1 IS NULL ... direct reference
IF NAME_IN ( :VAR1 ) IS NULL ... indirect reference
Referencing items indirectly allows you to write more generic, reusable code. By using variables in place of actual item names, you can write a subprogram that can operate on any item whose name has been assigned to the indicated variable.
If you nest the NAME_IN function, Form Builder evaluates the individual NAME_IN functions from the innermost one to the outermost one.
library is not saved within form. but in different file, so there is no where to find :frm1.txt1
for example, if you have a procedure in library:
procedure p1( v_one varchar2)
name_in(v_one) to get the value inside v_one, that is :frm1.txt1, so:
copy('value', name_in(v_one)) ==> to copy value to the txt field txt1 in form frm1.
you can't use:
copy('value', :frm1.txt1), nor you can:
copy('value', v_one).