sql - 有编译器问题以及游标问题的声明?
问题描述
所以我正在为我的项目创建一个程序。它说游标的声明不完整,导致语句被忽略。由于我的 T_ROW 无效,然后它最终给了我一个编译器日志问题。我对 SQL Oracle 数据库相当陌生,我正在尝试修复它。
这是我的代码:
CREATE OR REPLACE PROCEDURE T(Trip_ID in NUMBER) IS
CURSOR Trips_CURSOR IS SELECT * FROM TRIPS
where TRIPS_ID = T_INFO;
T_ROW Trips_CURSOR%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('The ID of this trip is ' || T_INFO);
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;
这也是我的代码的屏幕截图: 错误图像
解决方案
查看您的屏幕截图,您的TRIPS
表格包含TRIPS_ID
、DATE_OF_TRIP
和DESTINATION_TOWN
列SOURCE_TOWN
。但是,您没有T_INFO
列,也没有调用您的参数,T_INFO
因此您可能给参数提供了错误的名称:
CREATE OR REPLACE PROCEDURE T(
T_INFO in TRIPS.TRIPS_ID%TYPE
)
IS
CURSOR Trips_CURSOR IS
SELECT *
FROM TRIPS
WHERE TRIPS_ID = T_INFO;
T_ROW Trips_CURSOR%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('The ID of this trip is ' || T_INFO);
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;
/
db<>在这里摆弄
推荐阅读
- r - 从数据框中选择以数字开头的列
- css - 使用css的3行动态图像宽度
- html - 在大型菜单中使用 SiteNavigationElement
- safari-web-extension - (新的)Safari Web 扩展中的 OAuth 重定向 URL
- xml - 如何在 linux mint 20 中使用 google chrome 或 firefox 显示 xml xslt 代码?
- wordpress - WordPress自定义主题安装
- php - 如何使用 Laravel 将文件夹复制到另一个文件夹?
- list - Flutter 在不同的个人资料页面中显示特定的项目列表
- mysql - 触发调用过程:错误处理程序用信号存储错误
- python - Qt:为什么 qss 文件中只有一种样式有效