Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 XML и ORA-01460  [new]
XML newbie
Guest
Доброго!
Вот, на такое вот:

declare
x xmltype;
v varchar2(32000) :=
'
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"/>
<TITLE/>
</HEAD>
<BODY STYLE="background: #ffffff; margin: 0; font-family: Arial; font-size: 8pt; font-style: normal; ">
<TABLE style="width:0px; height:0px; " CELLSPACING="0">
<COL WIDTH="7"/>
<COL WIDTH="202"/>
<COL WIDTH="52"/>
<COL WIDTH="60"/>
<COL WIDTH="8"/>
<COL WIDTH="63"/>
<COL WIDTH="97"/>
<COL WIDTH="57"/>
<COL WIDTH="62"/>
<COL WIDTH="63"/>
<COL WIDTH="103"/>
<COL WIDTH="13"/>
<COL WIDTH="63"/>
<COL WIDTH="91"/>
<COL WIDTH="139"/>
<TR>
<TD STYLE=" border-left-style: none; border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD STYLE=" border-top-style: none;">
<SPAN/>
</TD>
<TD>;</TD>
</TR>
<TR CLASS="R1">
<TD CLASS="R1C14" COLSPAN="15" STYLE=" border-left-style: none;">
<SPAN STYLE="white-space:nowrap;">Приложение;№1<BR>к;Правилам;ведения;журналов;учета;полученных;и;выставленных;счетов-фактур,;</BR>
<BR>книг;покупок;и;книг;продаж;при;расчетах;по;налогу;на;добавленную;стоимость,</BR>
<BR>утвержденным;постановлением;Правительства;Российской;Федерации;от;2;декабря;2000;г.;N;914</BR>
<BR>(в;редакции;постановлений;Правительства;Российской;Федерации;</BR>
<BR>от;15;марта;2001;г.;N;189,;от;27;июля;2002;г.;N;575,;от;16;февраля;2004;г.;N;84)</BR>
</SPAN>
</TD>

</TR>
<TR CLASS="R2">
<TD STYLE=" border-left-style: none;">
<SPAN/>
</TD>
<TD CLASS="R2C1" COLSPAN="15">
<SPAN STYLE="white-space:nowrap;">Номер</SPAN>
</TD>
</TR>
<TR CLASS="R3">
<TD STYLE=" border-left-style: none;">
<SPAN/>
</TD>
<TD COLSPAN="15">
<SPAN STYLE="white-space:nowrap;">
<xsl:comment><!--ПредставлениеПоставщика--></xsl:comment>

</SPAN>
</TD>
</TR>
<TR CLASS="R3">
<TD STYLE=" border-left-style: none;">
<SPAN/>
</TD>
<TD COLSPAN="15">
<SPAN STYLE="white-space:nowrap;">АдресПоставщика</SPAN>
</TD>
</TR>

</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
';
begin
select xmltype(v) into x from dual;
end;

Получаю ORA-01460: unimplemented or unreasonable conversion requested
Что делать, помогите пожалуйста!
2 июн 14, 18:36    [16108569]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
Elic
Member

Откуда:
Сообщений: 29979
XML newbie
Что делать, помогите пожалуйста!
Не пытаться делать присвоение в PL/SQL через SQL.
2 июн 14, 18:42    [16108599]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Elic
Не пытаться делать присвоение в PL/SQL через SQL.


Это да, но проблему не решит.

SY.
2 июн 14, 19:37    [16108812]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
XML newbie
Что делать!


Выучить и повторять перед едой мантру: "XML это не строка".

SQL> declare
  2      v_xml xmltype := xmltype('<text>Text</text>');
  3      v_str varchar2(100);
  4  begin
  5      v_str := v_xml;
  6  end;
  7  /
    v_str := v_xml;
             *
ERROR at line 5:
ORA-06550: line 5, column 14:
PLS-00382: expression is of wrong type
ORA-06550: line 5, column 5:
PL/SQL: Statement ignored


SQL> declare
  2      v_xml xmltype := xmltype('<text>Text</text>');
  3      v_str varchar2(100);
  4  begin
  5      v_str := v_xml.GetStringVal();
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL> 


SY.

Сообщение было отредактировано: 2 июн 14, 19:41
2 июн 14, 19:39    [16108814]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Упс, прочитал пo-диагонали. Версия Oracle? На 11.2.0.3.0 не воспроизводится:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

SQL> declare 
  2  x xmltype;
  3  v varchar2(32000) :=
  4  '
  5  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  6  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  7  <xsl:template match="/">
  8  <HTML>
  9  <HEAD>
 10  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"/>
 11  <TITLE/>
 12  </HEAD>
 13  <BODY STYLE="background: #ffffff; margin: 0; font-family: Arial; font-size: 8pt; font-style: normal; ">
 14  <TABLE style="width:0px; height:0px; " CELLSPACING="0">
 15  <COL WIDTH="7"/>
 16  <COL WIDTH="202"/>
 17  <COL WIDTH="52"/>
 18  <COL WIDTH="60"/>
 19  <COL WIDTH="8"/>
 20  <COL WIDTH="63"/>
 21  <COL WIDTH="97"/>
 22  <COL WIDTH="57"/>
 23  <COL WIDTH="62"/>
 24  <COL WIDTH="63"/>
 25  <COL WIDTH="103"/>
 26  <COL WIDTH="13"/>
 27  <COL WIDTH="63"/>
 28  <COL WIDTH="91"/>
 29  <COL WIDTH="139"/>
 30  <TR>
 31  <TD STYLE=" border-left-style: none; border-top-style: none;">
 32  <SPAN/>
 33  </TD>
 34  <TD STYLE=" border-top-style: none;">
 35  <SPAN/>
 36  </TD>
 37  <TD STYLE=" border-top-style: none;">
 38  <SPAN/>
 39  </TD>
 40  <TD STYLE=" border-top-style: none;">
 41  <SPAN/>
 42  </TD>
 43  <TD STYLE=" border-top-style: none;">
 44  <SPAN/>
 45  </TD>
 46  <TD STYLE=" border-top-style: none;">
 47  <SPAN/>
 48  </TD>
 49  <TD STYLE=" border-top-style: none;">
 50  <SPAN/>
 51  </TD>
 52  <TD STYLE=" border-top-style: none;">
 53  <SPAN/>
 54  </TD>
 55  <TD STYLE=" border-top-style: none;">
 56  <SPAN/>
 57  </TD>
 58  <TD STYLE=" border-top-style: none;">
 59  <SPAN/>
 60  </TD>
 61  <TD STYLE=" border-top-style: none;">
 62  <SPAN/>
 63  </TD>
 64  <TD STYLE=" border-top-style: none;">
 65  <SPAN/>
 66  </TD>
 67  <TD STYLE=" border-top-style: none;">
 68  <SPAN/>
 69  </TD>
 70  <TD STYLE=" border-top-style: none;">
 71  <SPAN/>
 72  </TD>
 73  <TD STYLE=" border-top-style: none;">
 74  <SPAN/>
 75  </TD>
 76  <TD>;</TD>
 77  </TR>
 78  <TR CLASS="R1">
 79  <TD CLASS="R1C14" COLSPAN="15" STYLE=" border-left-style: none;">
 80  <SPAN STYLE="white-space:nowrap;">??????????;?1<BR>?;????????;???????;????????;?????;??????????;?;????????????;??????-??????,;</BR>
 81  <BR>????;???????;?;????;??????;???;????????;??;??????;??;???????????;?????????,</BR>
 82  <BR>????????????;??????????????;?????????????;??????????;?????????;??;2;???????;2000;?.;N;914</BR>
 83  <BR>(?;????????;?????????????;?????????????;??????????;?????????;</BR>
 84  <BR>??;15;?????;2001;?.;N;189,;??;27;????;2002;?.;N;575,;??;16;???????;2004;?.;N;84)</BR>
 85  </SPAN>
 86  </TD>
 87  </TR>
 88  <TR CLASS="R2">
 89  <TD STYLE=" border-left-style: none;">
 90  <SPAN/>
 91  </TD>
 92  <TD CLASS="R2C1" COLSPAN="15">
 93  <SPAN STYLE="white-space:nowrap;">?????</SPAN>
 94  </TD>
 95  </TR>
 96  <TR CLASS="R3">
 97  <TD STYLE=" border-left-style: none;">
 98  <SPAN/>
 99  </TD>
100  <TD COLSPAN="15">
101  <SPAN STYLE="white-space:nowrap;">
102  <xsl:comment><!--???????????????????????--></xsl:comment>
103  </SPAN>
104  </TD>
105  </TR>
106  <TR CLASS="R3">
107  <TD STYLE=" border-left-style: none;">
108  <SPAN/>
109  </TD>
110  <TD COLSPAN="15">
111  <SPAN STYLE="white-space:nowrap;">???????????????</SPAN>
112  </TD>
113  </TR>
114  </TABLE>
115  </BODY>
116  </HTML>
117  </xsl:template>
118  </xsl:stylesheet>
119  ';
120  begin
121  select xmltype(v) into x from dual;
122  end;
123  /

PL/SQL procedure successfully completed.

SQL> 


SY.
2 июн 14, 19:55    [16108878]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
-2-
Member

Откуда:
Сообщений: 15330
SY
не воспроизводится
Форматирование исходной строки с пробельчиками вставь (через цитирование).
2 июн 14, 20:21    [16108975]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
-2-
Форматирование исходной строки с пробельчиками вставь (через цитирование).


Без разницы:

SQL> declare 
  2  x xmltype;
  3  v varchar2(32000) :=
  4  '
  5  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  6  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  7  <xsl:template match="/">
  8  <HTML>
  9  <HEAD>
 10  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"/>
 11  <TITLE/>
 12  </HEAD>
 13  <BODY STYLE="background: #ffffff; margin: 0; font-family: Arial; font-size: 8pt; font-style: normal; ">
 14  <TABLE style="width:0px; height:0px; " CELLSPACING="0">
 15  <COL WIDTH="7"/>
 16  <COL WIDTH="202"/>
 17  <COL WIDTH="52"/>
 18  <COL WIDTH="60"/>
 19  <COL WIDTH="8"/>
 20  <COL WIDTH="63"/>
 21  <COL WIDTH="97"/>
 22  <COL WIDTH="57"/>
 23  <COL WIDTH="62"/>
 24  <COL WIDTH="63"/>
 25  <COL WIDTH="103"/>
 26  <COL WIDTH="13"/>
 27  <COL WIDTH="63"/>
 28  <COL WIDTH="91"/>
 29  <COL WIDTH="139"/>
 30  <TR>
 31  <TD STYLE=" border-left-style: none; border-top-style: none;">
 32  <SPAN/>
 33  </TD>
 34  <TD STYLE=" border-top-style: none;">
 35  <SPAN/>
 36  </TD>
 37  <TD STYLE=" border-top-style: none;">
 38  <SPAN/>
 39  </TD>
 40  <TD STYLE=" border-top-style: none;">
 41  <SPAN/>
 42  </TD>
 43  <TD STYLE=" border-top-style: none;">
 44  <SPAN/>
 45  </TD>
 46  <TD STYLE=" border-top-style: none;">
 47  <SPAN/>
 48  </TD>
 49  <TD STYLE=" border-top-style: none;">
 50  <SPAN/>
 51  </TD>
 52  <TD STYLE=" border-top-style: none;">
 53  <SPAN/>
 54  </TD>
 55  <TD STYLE=" border-top-style: none;">
 56  <SPAN/>
 57  </TD>
 58  <TD STYLE=" border-top-style: none;">
 59  <SPAN/>
 60  </TD>
 61  <TD STYLE=" border-top-style: none;">
 62  <SPAN/>
 63  </TD>
 64  <TD STYLE=" border-top-style: none;">
 65  <SPAN/>
 66  </TD>
 67  <TD STYLE=" border-top-style: none;">
 68  <SPAN/>
 69  </TD>
 70  <TD STYLE=" border-top-style: none;">
 71  <SPAN/>
 72  </TD>
 73  <TD STYLE=" border-top-style: none;">
 74  <SPAN/>
 75  </TD>
 76  <TD>;</TD>
 77  </TR>
 78  <TR CLASS="R1">
 79  <TD CLASS="R1C14" COLSPAN="15" STYLE=" border-left-style: none;">
 80  <SPAN STYLE="white-space:nowrap;">??????????;?1<BR>?;????????;???????;????????;?????;??????????;?;????????????;??????-??????,;</BR>
 81  <BR>????;???????;?;????;??????;???;????????;??;??????;??;???????????;?????????,</BR>
 82  <BR>????????????;??????????????;?????????????;??????????;?????????;??;2;???????;2000;?.;N;914</BR>
 83  <BR>(?;????????;?????????????;?????????????;??????????;?????????;</BR>
 84  <BR>??;15;?????;2001;?.;N;189,;??;27;????;2002;?.;N;575,;??;16;???????;2004;?.;N;84)</BR>
 85  </SPAN>
 86  </TD>
 87  
 88  </TR>
 89  <TR CLASS="R2">
 90  <TD STYLE=" border-left-style: none;">
 91  <SPAN/>
 92  </TD>
 93  <TD CLASS="R2C1" COLSPAN="15">
 94  <SPAN STYLE="white-space:nowrap;">?????</SPAN>
 95  </TD>
 96  </TR>
 97  <TR CLASS="R3">
 98  <TD STYLE=" border-left-style: none;">
 99  <SPAN/>
100  </TD>
101  <TD COLSPAN="15">
102  <SPAN STYLE="white-space:nowrap;">
103  <xsl:comment><!--???????????????????????--></xsl:comment>
104  
105  </SPAN>
106  </TD>
107  </TR>
108  <TR CLASS="R3">
109  <TD STYLE=" border-left-style: none;">
110  <SPAN/>
111  </TD>
112  <TD COLSPAN="15">
113  <SPAN STYLE="white-space:nowrap;">???????????????</SPAN>
114  </TD>
115  </TR>
116  
117  </TABLE>
118  </BODY>
119  </HTML>
120  </xsl:template>
121  </xsl:stylesheet>
122  ';
123  begin
124  select xmltype(v) into x from dual;
125  end; 
126  
127  /

PL/SQL procedure successfully completed.

SQL> 


SY.
2 июн 14, 20:48    [16109087]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
XML newbie
Guest
У меня Oracle Express edition
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
2 июн 14, 20:55    [16109116]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
XML newbie
Guest
напрямую
declare x xmltype := xmltype('...')
помогло.
Спасибо всем!
2 июн 14, 20:58    [16109122]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
-2-
Member

Откуда:
Сообщений: 15330
SY
-2-
Форматирование исходной строки с пробельчиками вставь (через цитирование).
Без разницы
А должна была быть будет быть
declare 
x xmltype;
v varchar2(32000) :=
'
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:template match="/">
    <HTML>
      <HEAD>
        <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8"/>
        <TITLE/>
      </HEAD>
      <BODY STYLE="background: #ffffff; margin: 0; font-family: Arial; font-size: 8pt; font-style: normal; ">
        <TABLE style="width:0px; height:0px; " CELLSPACING="0">
          COL WIDTH="7"/>
С пробелами 4111 символов набегает, не говоря уже о кириллице в предположительно utf-8.
2 июн 14, 21:13    [16109187]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
-2-
А должна была быть будет быть. С пробелами 4111 символов набегает, не говоря уже о кириллице в предположительно utf-8.


Спасибо. Не знал что PL/SQL переменная > 4000 используемая в SQL выдает ORA-01460 а не ORA-06502: PL/SQL: numeric or value error: character string buffer too small как например:

SQL> create or replace
  2    function f1
  3      return varchar2
  4      is
  5      begin
  6          return lpad('X',30000,'X');
  7  end;
  8  /

Function created.

SQL> select f1 from dual;
select f1 from dual
       *
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "SCOTT.F1", line 5


SY.

Сообщение было отредактировано: 2 июн 14, 22:12
2 июн 14, 22:12    [16109341]     Ответить | Цитировать Сообщить модератору
 Re: XML и ORA-01460  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
1461 тоже встречается

create table t(v varchar2(4000));
/


declaRE
v varchar2(30000) := lpad('X',30000,'X');
begin
insert into t values(substr(v, 1, 4000));
end;

ORA-01461: допускается привязка LONG значения только для занесения в столбец LONG
ORA-06512: на  line 4
2 июн 14, 23:10    [16109588]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить