我有以下类型
CREATE OR REPLACE TYPE "CLONE_PRODUCT_CHAR_RECORD" IS OBJECT (
CharacteristicID NUMBER,
NewValue VARCHAR2(200 Char),
NewValueName VARCHAR2(200 Char)
);
CREATE OR REPLACE TYPE "CLONE_PRODUCT_CHAR_TABLE" IS
TABLE OF CLONE_PRODUCT_CHAR_RECORD;
以及以下程序
DECLARE
characteristic CLONE_PRODUCT_CHAR_TABLE:=CLONE_PRODUCT_CHAR_TABLE(
CLONE_PRODUCT_CHAR_RECORD(2,'ZIKA','ZIKA'),
CLONE_PRODUCT_CHAR_RECORD(3,'MIGO','MIGO'),
CLONE_PRODUCT_CHAR_RECORD(4,'ZAG','ZAG')
);
char_record CLONE_PRODUCT_CHAR_RECORD;
BEGIN
END;
我需要从FeatureID = 3的特征记录中选择char_record变量
答案 0 :(得分:0)
这将返回记录的副本,而不是同一记录
SELECT CLONE_PRODUCT_CHAR_RECORD(CharacteristicID, NewValue, NewValueName)
INTO char_record
FROM TABLE(characteristic)
WHERE CharacteristicID = 3;
如果你想要记录本身,而不是副本,声明一个变量,row_num
说,保存行的行号,使用查询来查找,然后使用此行号查找表中的记录:
SELECT rn
INTO row_num
FROM (SELECT CharacteristicID, ROWNUM AS rn
FROM TABLE(characteristic))
WHERE CharacteristicID = 3;
char_record := characteristic(row_num);