Home >Database >Mysql Tutorial >Oracle 9i环境运行10g下的sql脚本出现不兼容的问题

Oracle 9i环境运行10g下的sql脚本出现不兼容的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:25:581076browse

在Oracle 10g环境中运行没有任何问题,但在Oracle 9i执行中,会莫名其妙地报错 ORA-22905: cannot access rows from a non-neste

在Oracle 10g环境中运行没有任何问题,如下:

FOR C IN (SELECT * FROM TABLE(PKG_CMD_COMMON.F_SPLIT(P_IN_IDS_, ','))) LOOP
。。。。此处省略
END LOOP;

但在Oracle 9i执行中,,会莫名其妙地报错 ORA-22905: cannot access rows from a non-nested table item无法从非嵌套表项访问行。

分析:

包pkg_cmd_common中的函数f_split返回的是type类型的自定义的数组type_varchar_array

在网上查知:oracle9i下需要cast转换

FOR C IN (SELECT * FROM TABLE(CAST(PKG_CMD_COMMON.F_SPLIT(P_IN_IDS_, ',') AS TYPE_VARCHAR_ARRAY))) LOOP
。。。。此处省略
END LOOP;

重新编译后不再报错,至此问题解决,在这里记录下。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn