我正在尝试编写一个PL / SQL来将逗号分隔的字符串转换为数组并迭代它。
为此我创建了一个数据类型如下:
"CODE_TABLE_TYPE" AS TABLE OF VARCHAR2(500)
创建一个函数 - STR_TO_CODE_TABLE
,将逗号分隔的字符串转换为CODE_TABLE_TYPE表。
并且PL / SQL看起来像这样:
FOR DEP IN ( SELECT * FROM TABLE ( CAST( STR_TO_CODE_TABLE( IN_DES_AIRPORTS ) AS CODE_TABLE_TYPE ) ) ) LOOP
SELECT * INTO RESULTS FROM MY_TABLE
WHERE IN_ID = MY_TABLE.ID
AND ( SELECT 1 FROM TEMP_TABLE WHERE DEPARTURE LIKE '%' || DEP || '%' )= 1;
END LOOP;
但它给出了一个错误,说“表达式是错误的类型”。但是数据类型是varchar2。
任何人都可以建议可能的原因是什么。我该怎么做才能避免这个问题?