Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使此查询成功运行?_Sql_Oracle - Fatal编程技术网

Sql 如何使此查询成功运行?

Sql 如何使此查询成功运行?,sql,oracle,Sql,Oracle,返回 ORA-01427:单行子查询返回多行 我需要输出 where or_in_list_fn returns FV52 1101 您需要使子查询返回1行和1个字段。您可以使用max() 直接使用内部查询,而不是从另一个select返回数据,因为您没有在外部select中执行任何操作 select (SELECT max(yourfield) FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd from dual 如果要在外部select中执行

返回

ORA-01427:单行子查询返回多行

我需要输出

where or_in_list_fn returns
FV52
1101

您需要使子查询返回1行和1个字段。您可以使用
max()


直接使用内部查询,而不是从另一个select返回数据,因为您没有在外部select中执行任何操作

select (SELECT max(yourfield) FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd from dual
如果要在外部select中执行某些筛选或与另一个表联接,请在查询的from子句中使用它,如下所示:

SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))
试试这个:

select plant_cd.* from (SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd

也许这样
SELECT*FROM TABLE(或_in_list_fn('fv521101')
?没有我需要进一步使用的plant_cd别名..所以我想重写它..这样它会返回plant_cd FV52 1101将SELECT语句如下所示:
SELECT column_value作为plant_cd FROM TABLE(或_in_list_fn('FV52','1101')
问题是:SELECT()从dual中,这将始终生成提到的异常:ORA-01427:单行子查询返回多行“plant_cd”在您的输出中可以是列标题或数据项?我没有任何字段。或者\u in_list \u fn是一个函数,它在单独的行中返回FV521101。@SatheeshK:如果您没有在外部SELECT中执行任何操作,那么为什么要在另一个SELECT USE中使用SELECT语句。
SELECT*FROM TABLE(或\u in_list_fn('FV521101'))
直接。如果我错了,请纠正我。@Gaurav Soni:因为对于别名plant\u cdOps…Nicholas Krasnov已经提到了这个解决方案。
SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))
select plant_cd.* from (SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd
SELECT column_value AS plant_cd FROM TABLE(or_in_list_fn('FV52,1101'))