oracle - 检查游标 ISOPEN 的 PLSQL 问题
问题描述
我想要实现的是检查光标是否打开作为安全预防措施,但我总是收到此错误。任何形式的帮助将不胜感激。
LINE/COL ERROR
-------- -----------------------------------------------------------------
29/5 PL/SQL: SQL Statement ignored
29/5 PLS-00306: wrong number or types of arguments in call to
'WROTE_CUR'
CREATE OR REPLACE PROCEDURE print_publication (p_name CHAR) AS
CURSOR wrote_cur (v_AID NUMBER) IS
SELECT AID,PUBID FROM wrote WHERE AID = v_AID;
v_wrote_rec wrote_cur%ROWTYPE;
BEGIN
IF NOT wrote_cur%ISOPEN THEN
OPEN wrote_cur;
END IF;
CLOSE wrote_cur;
END;
/
解决方案
你用 input 声明了 cursor Argument
。
CURSOR wrote_cur (v_AID NUMBER) IS --<-- Cursor is expecting argument at runtime
在 Begin 块中,您没有将任何参数传递给游标。
OPEN wrote_cur; --<-- Here..
像这样传递参数:
OPEN wrote_cur(1);
推荐阅读
- python-3.x - 无法使用 pip 在 Windows 上安装 h5py
- c# - 比较 SQL Server C# Windows 应用程序中两个表中的两个相似列
- c++ - 有多个空基时如何在 MSVC 中强制空基优化
- powerbi - 在 DirectQuery 模式下是否需要手动刷新仪表板上的磁贴?
- reactjs - 使 Select 上的标签可编辑
- c# - .NET 5.0 无法在 Visual Studio Code 上搭建 razorpage
- sql - sql从一系列位值制作几何序列
- c# - 如何将每个单词字母带入数组c#
- angular - 每次构建时,Electron 应用程序的大小都会增加
- python-3.x - 如何使用python3从URL修改字段