You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle存储过程编译报错:游标声明不完整、T_ROW无效如何解决?

Oracle存储过程游标编译报错修复方案

错误原因

  • 入参引用错误:存储过程声明的入参名为Trip_ID,但游标过滤条件、输出语句中均使用了未定义的变量T_INFO,Oracle无法识别该变量,导致游标声明校验失败,后续关联的T_ROW变量也被判定为无效对象。
  • 冗余的行类型声明:使用FOR循环遍历游标时,Oracle会自动隐式生成对应行类型的循环变量,无需提前手动声明T_ROW Trips_CURSOR%ROWTYPE。

修正后可正常编译的代码

CREATE OR REPLACE PROCEDURE T(Trip_ID in NUMBER) IS
CURSOR Trips_CURSOR IS SELECT * FROM TRIPS
where TRIPS_ID = Trip_ID;
BEGIN
 DBMS_OUTPUT.PUT_LINE('The ID of this trip is ' || Trip_ID);
 FOR T_ROW IN Trips_CURSOR LOOP
 DBMS_OUTPUT.PUT_LINE('The Date of the trip is ' || T_ROW.DATE_OF_TRIP);
 DBMS_OUTPUT.PUT_LINE('The Destination town of the Trip ' || T_ROW.Destination_Town);
 DBMS_OUTPUT.PUT_LINE('The Source town is  ' || T_ROW.Source_Town);
END LOOP;
END;
/

内容的提问来源于stack exchange,提问作者Saitou9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:15:07