Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Plsql ORA-01422-精确提取返回的行数超过请求的行数错误_Plsql_Ora 01422 - Fatal编程技术网

Plsql ORA-01422-精确提取返回的行数超过请求的行数错误

Plsql ORA-01422-精确提取返回的行数超过请求的行数错误,plsql,ora-01422,Plsql,Ora 01422,我是编写PL/SQL的新手。我有这个小代码,但由于主题错误,无法打印输出 declare output_tour_id varchar(4000); begin dbms_output.enable; for r in ( SELECT TOUR_ID FROM "/DSD/HH_RADELHD" VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2015-04-02 18:00:00','YYYY-MM-DD HH24:MI:SS') AND TO_

我是编写PL/SQL的新手。我有这个小代码,但由于主题错误,无法打印输出

declare
output_tour_id varchar(4000);

begin
dbms_output.enable;

for r in 
(
SELECT TOUR_ID FROM "/DSD/HH_RADELHD"
VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2015-04-02 18:00:00','YYYY-MM-DD    HH24:MI:SS')
AND TO_TIMESTAMP('2015-04-02 18:30:00','YYYY-MM-DD HH24:MI:SS')
WHERE VERSIONS_OPERATION = 'D'
group by VERSIONS_STARTTIME, CLIENT, TOUR_ID
) 

Loop
@/tmp/get.sql r.tour_id;
DBMS_OUTPUT.PUT_LINE (output_tour_id);
end loop;
end;
/
我在执行以下操作后出现此错误:

old  30: WHERE CLIENT = 100 and TOUR_ID = &1;
new  30: WHERE CLIENT = 100 and TOUR_ID = r.tour_id;
'100','100002039690','000001','0001398563','0050543675','10','C170','20150402070750','CET','1',' ','10',' ','91597','20150330',' ',
declare
*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 13
非常感谢您的意见。先谢谢你


如何使代码正确执行?

错误在get.sql脚本中。此脚本中的SELECT INTO语句返回多行。您可以尝试使用SELECT DISTINCT和/或添加另一个WHERE条件来限制结果集。

在哪里填充输出\u tour\u id?@mmmmm pie,它在get.sql脚本中填充;脚本执行select into变量output\u tour\u id。那么匿名块如何知道output\u tour\u id的内容呢?谢谢@Pavel Gatnar。get.sql用于检索许多行。我认为该变量将存储每一行,然后由DBMS_OUTPUT.PUT_LINE OUTPUT_tour_id;显示;,然后在下一个循环中使用r.tour\u id中的新值再次更新。