[Form Builder]NAME_IN()与COPY()

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).

############################## 通往精神的路很多,物质只是其中一种 ##############################
http://www.onejava.com/article/oracle/wip/wiptop.htm
https://docs.oracle.com/cd/A60725_05/html/comnls/us/index.htm
http://www.oracle.com/technetwork/cn/developer-tools/apex/getting-started-094884-zhs.html
https://docs.oracle.com/cd/B34956_01/current/html/docset.html
原文地址:https://www.cnblogs.com/pompeii2008/p/5411102.html