PLS-00103 在 CASE 中遇到符号“”错误 [关闭]

Posted

技术标签:

【中文标题】PLS-00103 在 CASE 中遇到符号“”错误 [关闭]【英文标题】:PLS-00103 Encountered the symbol " " error in CASE [closed] 【发布时间】:2013-12-26 11:11:10 【问题描述】:

我在下面的过程中简单地写了 CASE 语句

(当 (T1.DEVICEHOLD = 'Z1' 或 T2.ISHOLD = 1) 然后 1 否则 0 END) 保留

但是当我编译程序时,它给出了一个错误 Compilation errors for PACKAGE BODY

错误:PLS-00103:在预期以下情况之一时遇到符号“Z1”: * & = - + ;在 in 是 mod 余数不是 rem or != or ~= >= and or like LIKE2_ LIKE4_LIKEC_之间||多集成员 SUBMULTISET_ 在“Z1”之前插入符号“*”以继续。

谁能帮我解决这个问题?

提前致谢!

【问题讨论】:

尝试去掉所有括号,这里不需要。在使用您的案例的地方发布更多代码,以便我们了解上下文。 发布的代码不会导致此错误,因此您尚未准确发布导致错误的原因。你能发布错误的原因吗?您的引号与代码中的引号完全相同吗? 你可以用上面的语句发布查询块吗? @Ben--我已经精确定位了。我只写了“Z1”,但不知道为什么会出现这样的错误 首先,如果您在 PL/SQL 块内(而不是在 SQL 查询内)使用 CASE 语句,那么您需要以 END CASE 结束该案例。并且 CASE 评估的输出应该分配给一个变量。 【参考方案1】:

这是一个编译器错误。最可能的原因是某处的流浪 ' 这意味着您的 sn-p 中的第一个 ' 终止 带引号的字符串,因此编译器认为 Z1 是代码,并且无效像这样。

发现此类问题的最简单方法是使用具有语法突出显示功能的体面的编辑器或 IDE。这些工具为报价、关键字和 cmets 着色,因此可以轻松发现我们制作灯笼裤的位置。有很多免费工具可用:Notepad++ 或 Oracle SQL Developer 是流行的选项。

【讨论】:

很好的解释。 +1。致敬!

以上是关于PLS-00103 在 CASE 中遇到符号“”错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PLS-00103:在 DBMS_SCHEDULER 中遇到符号

错误:PLS-00103:在预期以下情况之一时遇到符号“)”

PLS-00103 遇到符号“数字”

PLS-00103:在 oracle 函数中预期以下之一时遇到符号“IF”

PLS-00103:在简单更新块中遇到符号“文件结尾”

PLS-00103:在检查绑定变量中的值时遇到符号“EXCEPTION”错误