在PL/SQL Developer中转义&符号

Ray*_*sen 21 oracle escaping special-characters plsqldeveloper

我正在尝试针对Oracle数据库的简单INSERT语句.其中一个值是VARCHAR2字段,insert语句包含一个&符号.我该怎么做呢?我尝试了以下方法:

  1. 使用set escape转义&as \&
  2. 设置扫描关闭(这会导致ORA-00922丢失或无效选项错误)
  3. set define off(这会导致ORA-00922缺失或无效选项错误)

还有其他想法吗?

Ray*_*sen 26

我如何解决它是逃避&与另一个&.

例如:

INSERT INTO Foo (Bar) VALUES ('Up && Away');
Run Code Online (Sandbox Code Playgroud)

很好地工作.谢谢你的帮助

  • 不适合我...我的解决方案是答案“...INSERT INTO tablex VALUES ('Sid' || '&' || ' Nancy');...” (2认同)

Wil*_*son 22

当前版本的PL/SQL Developer(11.0.x)有一个禁用/启用替换变量的按钮.

在此输入图像描述


APC*_*APC 12

PL/SQL Developer的一个功能是需要时间来熟悉它是多种不同的窗口类型.

其中一个是COMMAND窗口,它基本上是一个SQL*Plus模拟器.我们可以运行SQL*Plus命令以及SQL,因此SET ESCAPE,SET DEFINE 确实SET SCAN OFF可以在该窗口中运行.


Ait*_*tor 8

你尝试过这样的事吗?

INSERT INTO tablex VALUES ('Sid ' || '&' || ' Nancy');
Run Code Online (Sandbox Code Playgroud)

改进我的第一个答案,你的问题与PL/SQL Developer有关.如果在PL/SQL Developer命令窗口中执行块,则还可以使用标准SET DEFINE OFF,它与SQL*Plus中的相同.


小智 5

concat 对我来说工作得很好,下面是我在 select 语句中所做的:

select FUND_NM
FROM PERFORMANCE
WHERE upper(FUND_DESC) in ('My L&' ||'L FUNDS')
Run Code Online (Sandbox Code Playgroud)