匿名块和过程中出现的问题

Posted

技术标签:

【中文标题】匿名块和过程中出现的问题【英文标题】:Problems incurred in an anonymous block and procedure 【发布时间】:2016-02-11 13:24:06 【问题描述】:

我正在编写一个代码,要求我使用匿名块来执行一个过程。当我运行代码时,它显示几乎没有错误。但是,错误消息对于出了什么问题并不是很有帮助。我的第一个问题是,如果我想在匿名块中调用的过程内使用游标,我应该在过程内还是在过程外但在匿名块内定义游标?我的第二个问题是我应该将异常保留在游标循环中吗?除此之外,我的代码出了什么问题?谢谢。

错误报告如下所示: 错误报告 - ORA-06550:第 12 行,第 15 列: PLS-00201:必须声明标识符“ATERM” ORA-06550:第 13 行,第 10 列: PL/SQL: ORA-00904: : 无效标识符 ORA-06550:第 11 行,第 7 列: PL/SQL:忽略 SQL 语句 ORA-06550:第 53 行,第 28 列: PL/SQL: ORA-00918: 列定义不明确 ORA-06550:第 33 行,第 10 列: PL/SQL:忽略 SQL 语句 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。

【问题讨论】:

【参考方案1】:

不要在声明游标中使用INTO,并在lowest_score 过程中移动游标和变量aterm、asectno、actitle、asid、afname、ascore。 再见, 伊戈尔

【讨论】:

这是一个很好的观点。我将光标移到我的程序中并稍作更改。但是还是有2个错误如下:“错误报告-ORA-06550: line 51, column 28: PL/SQL: ORA-00918: column ambiguously defined ORA-06550: line 31, column 10: PL/SQL: SQL Statement忽略 06550。00000 -“第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。*操作:“ 嗨,我看不到代码了...对于 ORA-00918,您可能必须指定表格;对于其他人来说,似乎缺少某些东西(括号、分号等)。再见,伊戈尔

以上是关于匿名块和过程中出现的问题的主要内容,如果未能解决你的问题,请参考以下文章

Java 重学系列之匿名代码块和静态代码块区别

Java 重学系列之匿名代码块和静态代码块区别

Fortran 中的 INTERFACE 块和 MODULE 过程之间的区别是啥?

异常--异常体系异常的处理异常的捕获finally语句块和自定义异常

匿名函数

Block匿名函数(转载)