- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个试图通过 sqlplus 运行的脚本。在脚本的顶部,我设置了“SET DEFINE OFF”。但是,当我运行它时,我收到了这个错误:
SP2-0552:未声明绑定(bind)变量“CHANDAWALA”。
我相信这种情况正在发生,因为我有几个更新语句在字符串中包含冒号,如下所示:
UPDATE ADDRESS SET ADDRESS_STREET_LINE1 = 'Moh: Chandawala'...
UPDATE ADDRESS SET ADDRESS_STREET_LINE1 = 'Moh:chandawala'...
因此它将它们视为绑定(bind)变量。我的印象是 SET DEFINE OFF 会使它把引号字符串中的任何内容都视为字符,而不解释其中的任何内容,包括感知到的绑定(bind)变量。
这显然不是这种情况 - 那么在这种情况下,我应该怎么办?我必须手动转义这些吗?
谢谢。
编辑 - 在 When or Why to use a "SET DEFINE OFF" in Oracle Database 发布的问题对我没有帮助,因为那个人试图逃避变量替换的符号,而不是冒号作为绑定(bind)变量。我正在寻找一种方法来告诉客户忽略带引号的字符串中的任何内容(包括冒号)。
编辑 - 好的,听起来 Oracle 不应该将其解释为引号内的绑定(bind)变量。那么现在的问题是,它为什么要这样做?
最佳答案
Set Define Off
是一个 SQLPlus 命令,它防止 SQLPlus 将 &
视为特殊字符。 &
也是特定于 SQLPlus 的,在它之外没有任何意义。
当define
为on
时,SQLPlus用实际值替换替换变量,然后将其传递给Oracle SQL引擎。
另一方面,:
是真正的绑定(bind)变量,只有 Oracle SQL 引擎才能识别并查找要绑定(bind)的值。 :
不被 SQLPlus 识别为绑定(bind)元字符,而是按原样传递给 SQL 引擎。
关于oracle - 为什么 SET DEFINE OFF 不适用于冒号 ( :) character?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876365/
我是一名优秀的程序员,十分优秀!