Проблемы вставки с PL / SQL Developer - PullRequest
5 голосов
/ 09 января 2012

У меня есть следующий скрипт, который я хочу вставить в таблицу, но у меня есть некоторые проблемы с ним.

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:text>&nbsp;</xsl:text>

Я использую PL / SQL Developer, и когда я запускаю скрипт выше, он распознает

&nbsp;

как сущность, и тогда я должен ввести, какое значение я хочу в нем. То, что я хочу, это простой пробел в XSL, так что имя и фамилия будут разделены. Я перепробовал все предложения по следующей ссылке: orafaq - Я просто не могу заставить его работать. Либо происходит сбой при попытке вставить, либо происходит сбой при извлечении данных.

Есть ли какой-нибудь простой способ вставить пробел в XSL?

Ответы [ 4 ]

6 голосов
/ 09 января 2012

Используйте командное окно вместо окна SQL для запуска сценариев в PL / SQL Developer.Чтобы преобразовать окно одного типа в другой, просто щелкните правой кнопкой мыши в любом месте окна и выберите «Изменить окно на» => «Окно команд».

Затем запустите сценарий, как в SQL * Plus - вэтот случай с SET DEFINE OFF в качестве первой строки.

5 голосов
/ 18 января 2013

использование

'<xsl:text>'||'&'||'nbsp;</xsl:text>'

это решит проблему везде и навсегда, а также и для вас - для каждого будущего пользователя.

Просто выделите символ

2 голосов
/ 12 января 2012

Попробуйте:

'<xsl:text>'||unistr('\00A0')||'</xsl:text>'

Эта unistr('\00A0') функция возвращает Unicode NO-BREAK SPACE

Или, если вы хотите сам объект, вы можете попробовать это:

'<xsl:text>'||chr(38)||'nbsp;</xsl:text>'

chr(38) возвращает буквенный амперсанд без попытки ввода ввода.

2 голосов
/ 10 января 2012
<xsl:text>&&nbsp;</xsl:text>

Из руководства разработчика PL / SQL:

Если вы хотите использовать амперсанд в тексте SQL, который не следует интерпретировать как переменную подстановки, используйте вместо него двойной амперсанд.

...