powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кто активно юзает технологии XML/XSL на PL/SQL?
9 сообщений из 9, страница 1 из 1
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151349
non
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отзовитесь...У меня для вас есть вопрос...
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151359
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ny...
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151449
non
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тебе по почте отписал
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151810
non
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 эксперт
я тебе кинул вопросец по почте...

У меня 8.1.7
Поставил JVM и XML
Имею две функции

FUNCTION TRANSFORM_XML_WITH_XSL(
p_xml in clob,
p_xsl in clob )
return clob
is
l_par xmlparser.parser;
l_xml xmldom.domdocument;
l_pro xslprocessor.processor;
l_xsl xslprocessor.stylesheet;
l_clob clob;
begin
l_par := xmlparser.newparser;
xmlparser.parseclob(l_par, p_xsl);
l_xsl := xslprocessor.newstylesheet(xmlparser.getdocument(l_par),null);
xmlparser.parseclob(l_par, p_xml);
l_xml := xmlparser.getdocument(l_par);
dbms_lob.createtemporary(l_clob, true, dbms_lob.session);
l_pro := xslprocessor.newprocessor;
xslprocessor.processxsl(l_pro,l_xsl,l_xml,l_clob);
xmlparser.freeparser(l_par);
xslprocessor.freeprocessor(l_pro);
return l_clob;
exception
when others then
xmlparser.freeparser(l_par);
xslprocessor.freeprocessor(l_pro);
raise;
end transform_xml_with_xsl;

FUNCTION GET_WHERE_XML (
P_SELECT IN VARCHAR2,
P_WHERE1_NAME IN VARCHAR2,
P_WHERE1_ID IN NUMBER )
RETURN CLOB
IS
P_CTX DBMS_XMLQUERY.CTXTYPE;
P_VARCHAR VARCHAR2(4000);
P_C_XML CLOB;
P_V_XML VARCHAR2(4000);
L_XSL CLOB;
P_XSL VARCHAR2(4000);
BEGIN
DBMS_LOB.CREATETEMPORARY(L_XSL,TRUE,DBMS_LOB.SESSION);
p_xsl:='?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match = "/ROWSET/ROW">
<alex>
<xsl:for-each select="node()">
<xsl:attribute name="{name()}">
<xsl:value-of select="text()"/>
</xsl:attribute>
</xsl:for-each>
</alex>
</xsl:template>
</xsl:stylesheet>';
DBMS_LOB.WRITE(L_XSL,LENGTH(P_XSL),1,P_XSL);
P_VARCHAR:=P_SELECT||' WHERE '||P_WHERE1_NAME||'=:'||P_WHERE1_NAME;
DBMS_LOB.CREATETEMPORARY(P_C_XML,TRUE,DBMS_LOB.SESSION);
P_CTX := DBMS_XMLQUERY.NEWCONTEXT(P_VARCHAR);
DBMS_XMLQUERY.SETROWTAG(P_CTX, NULL);
DBMS_XMLQUERY.SETROWSETTAG(P_CTX, 'MSG');
DBMS_XMLQUERY.SETBINDVALUE(P_CTX,P_WHERE1_NAME,P_WHERE1_ID);
P_C_XML := DBMS_XMLQUERY.GETXML(P_CTX);
DBMS_XMLQUERY.CLOSECONTEXT(P_CTX);
P_V_XML:= DBMS_LOB.SUBSTR(P_C_XML,4000);
P_C_XML := TRANSFORM_XML_WITH_XSL(P_C_XML,L_XSL );
RETURN P_C_XML;
EXCEPTION
WHEN OTHERS THEN
DBMS_XMLQUERY.CLOSECONTEXT(P_CTX);
RAISE;
END;



Задача XSLT преобразовать элементы в атрибуты…



При вызове

select get_where_xml('select * from v_get_prim','message_id',690) from dual

ругается

: (Error): ORA-20103: Null input is not allowed ORA-06512: at "SYS.XSLPROCESSOR", line 33 ORA-06512: at "SYS.XSLPROCESSOR", line 320 ORA-06512: at "REALT.TRANSFORM_XML_WITH_XSL", line 26 ORA-06512: at "REALT.GET_WHERE_XML", line 70 ORA-06512: at line 1

НА СТРОЧКУ
l_xsl := xslprocessor.newstylesheet(xmlparser.getdocument(l_par),null);


КАК ЭТО ПОЛЕЧИТЬ?
Кто используешь подобные процедуры?
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151823
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok. delau test..
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151875
Фотография Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Non

А как форматировать текст мелким шрифтом как у вас? Вроде такой фичи не видел раньше. Посмотрел В HTML коде стоит <font size=1>.

(Error): ORA-20103: Null input is not allowed ....
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32151910
non
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 YES

НЕ ПОНЯЛ!?

ПРИ ЧЕМ ТУТ МЕЛКИЙ ШРИФТ? И ГДЕ ТЫ У МЕНЯ УВИДЕЛ FONT_SIZE?
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32152037
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, oshibky ya ne poluchil... V debug vse proshlo..
JDK standart? (1.1.3) ili ..?
...
Рейтинг: 0 / 0
Кто активно юзает технологии XML/XSL на PL/SQL?
    #32152224
Фотография shane54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Yes

Это глюк этого форума. Обычно если вылезает, то не убрать.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кто активно юзает технологии XML/XSL на PL/SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]