You should use a type constructor in a select subquery to fill the nested table in your occasion:
INSERT INTO PurchaseOrder_objtab
SELECT
1008,
REF(C),
SYSDATE,
'12-MAY-1999',
(SELECT LineItemList_ntabtyp(LineItem_objtyp(1, REF(StckItem), 10, 1)) FROM Stock_objtab WHERE StockNo = 1004),
NULL
FROM Customer_objtab C
WHERE C.CustNo = 1;
UPDATE:
I'm not sure about the fact you're doing the task correctly (I mean it's useless to store object types as tables to my mind, I'd use managable ordinary tables instead of such archutecture.
INSERT INTO PurchaseOrder_objtab
SELECT PurchaseOrder_objtyp(
1008,
REF(C),
SYSDATE,
'12-MAY-1999',
(SELECT LineItemList_ntabtyp(LineItem_objtyp(1, REF(StckItem), 10, 1)) FROM Stock_objtab WHERE StockNo = 1004),
NULL)
FROM Customer_objtab C
WHERE C.CustNo = 1;
UPDATE 2:
If you're eager to insert more than one value into the nested table, use enumeration (if the values are written by hand) or subquery:
(
SELECT LineItemList_ntabtyp(
SELECT LineItem_objtyp(1, REF(StckItem), 10, 1) FROM Stock_objtab WHERE StockNo = 1004
UNION ALL
SELECT LineItem_objtyp(2, REF(StckItem), 10, 1) FROM Stock_objtab WHERE StockNo = 1005
)
FROM DUAL
)