繁体   English   中英

PL/SQL Developer 中的转义符

[英]Escape ampersand in PL/SQL Developer

我正在尝试针对 Oracle 数据库执行简单的 INSERT 语句。 其中一个值是 VARCHAR2 字段,并且插入语句包含一个与号。 我该怎么做呢? 我尝试了以下方法:

  1. 将 & 转义为 \\& 并设置转义
  2. 设置扫描关闭(这会导致 ORA-00922 丢失或无效选项错误)
  3. 设置定义关闭(这会导致 ORA-00922 丢失或无效选项错误)

还有其他想法吗?

在 SQL 窗口的底部有一个按钮来禁用/启用替换变量:

在此处输入图片说明

我如何解决它是用另一个 & 转义 & 。

例如:

INSERT INTO Foo (Bar) VALUES ('Up && Away');

很好用。 感谢所有的帮助

PL/SQL Developer 需要花时间熟悉的特性之一是过多的不同窗口类型。

其中之一是 COMMAND 窗口,它基本上是一个 SQL*Plus 模拟器。 我们可以运行 SQL*Plus 命令以及 SQL,因此SET ESCAPESET DEFINE和实际上SET SCAN OFF在该窗口中工作。

你有没有尝试过这样的事情?

INSERT INTO tablex VALUES ('Sid ' || '&' || ' Nancy');

改进我的第一个答案,您的问题与 PL/SQL Developer 相关。 如果您在 PL/SQL Developer Command 窗口中执行您的块,您还可以使用标准的 SET DEFINE OFF,其工作方式与 SQL*Plus 中相同。

concat 对我来说非常好,下面是我在 select 语句中所做的:

select FUND_NM
FROM PERFORMANCE
WHERE upper(FUND_DESC) in ('My L&' ||'L FUNDS')

我在 PL/SQL 中需要 & 符号的地方使用chr(38)

addr:= 'mysite.com/order.aspx?no=5678' || CHR(38) || 'id=947';
--above line gives you 'mysite.com/order.aspx?no=5678&id=947';

这只是一个 SQL 编辑器问题。 要解决这个问题,只需使用 SET DEFINE OFF 编译程序; . PL(在服务器中执行)的执行不会面临这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM