Using Operator VALUE:
As you may expect, the operator VALUE returns the value of an object. The VALUE takes its argument a correlation variable. For illustration, to return a result set of the Person objects, you can use the VALUE as shown below:
BEGIN
INSERT INTO employees
SELECT VALUE(p) FROM persons p
WHERE p.last_name LIKE '%Smith';
In the next example, you use VALUE to return a specific Person object:
DECLARE
p1 Person;
p2 Person;
...
BEGIN
SELECT VALUE(p) INTO p1 FROM persons p
WHERE p.last_name = 'Kroll';
p2 := p1;
...
END;
At this position, p1 holds a local Person object, that is a copy of the stored object whose last name is 'Kroll', and p2 holds the other local Person object, that is a copy of p1. As the illustration below shows, you can use these variables to access and update the objects they have:
BEGIN
p1.last_name := p1.last_name || 'Jr';
Currently, the local Person object held by p1 has the last name 'Kroll Jr'.