Oracle PL/SQL开发人员的插入问题

Oracle PL/SQL开发人员的插入问题,oracle,xslt,plsql,whitespace,html-entities,Oracle,Xslt,Plsql,Whitespace,Html Entities,我有下面的脚本,我想插入到一个表中,但我有一些问题 declare v_xslt9 varchar2(32767) := '<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" indent="yes"/> <xs

我有下面的脚本,我想插入到一个表中,但我有一些问题

declare
    v_xslt9 varchar2(32767) := '<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" indent="yes"/> <xsl:template name="Template"> <xsl:text>Kære </xsl:text> <xsl:value-of select="/nameValueMap/entry[string=''FIRST_NAME'']/string[2]"/> <xsl:text>&nbsp;</xsl:text> <xsl:value-of select="/nameValueMap/entry[string=''LAST_NAME'']/string[2]"/></xsl:template> </xsl:stylesheet>'
begin
    insert into XSLT values ('','Note',sysdate,v_xslt9,sysdate,'T','')
end;
作为一个实体,我必须输入我想要的值。我想要的是XSL中的一个简单空格,这样名字和姓氏就可以分开。我尝试了以下链接中的所有建议:-我就是无法让它工作。要么在尝试插入时失败,要么在提取数据时失败

有没有在XSL中插入空白的简单方法?

在PL/SQL Developer中使用一个而不是SQL窗口来运行脚本。要将一种窗口转换为另一种类型,只需在窗口中的任意位置单击鼠标右键,然后选择“将窗口更改为=>Command window”

然后像在SQL*Plus中一样运行脚本—在本例中,第一行是SET DEFINE OFF

<xsl:text>&&nbsp;</xsl:text>
从PL/SQL开发人员手册:

如果希望在SQL文本中使用不应使用的符号AND 解释为替换变量时,请使用双安培和 相反

尝试一下:

'<xsl:text>'||unistr('\00A0')||'</xsl:text>'
chr38在不提示输入的情况下返回文字符号AND。

使用

'<xsl:text>'||'&'||'nbsp;</xsl:text>'
它将解决任何地方和永远的问题,以及为您-为每一个未来的用户


只需隔离符号

似乎PL/SQL开发人员将其视为一个脚本变量,非常类似于SQLPlus。在运行脚本之前,请尝试运行SET DEFINE OFF,该脚本至少可以修复SQLPlusalready中的问题。。如果运气不好:那么您需要查看PL/SQL开发人员手册……我已经试过了,它很管用。但我猜这只能在PL/SQL中使用问题是,我需要将SQL交付给其他人运行,而我甚至不知道他们将如何运行SQL—因此,如果可能,我需要一个通用的解决方案。是的,这只适用于PL/SQL Developer。据我所知,没有普遍的解决办法。每个环境都有自己的怪癖,这将使这一点变得困难。这就是为什么很多人总是使用SQL*Plus来运行任何东西——它并不总是最好的环境,但它几乎总是可用的。这似乎也可行,但我不能使用declare位,因为它不会运行脚本。它只是在我键入内容时不断扩展脚本。在新的空行上使用正斜杠/结束BEGIN…end块,如SQL*Plus中所示。
'<xsl:text>'||unistr('\00A0')||'</xsl:text>'
'<xsl:text>'||chr(38)||'nbsp;</xsl:text>'
'<xsl:text>'||'&'||'nbsp;</xsl:text>'