0

我正在尝试编写一个 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。

任何人都可以请建议这是什么可能的原因。我应该怎么做才能避免这个问题?

4

0 回答 0