<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">I&#8217;ve now shown the database procedure part was a furphy. A simple insert has the same effect.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">It has also been pointed out the descent into insanity was a very short trip.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Marty<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Martin Bowes [mailto:martin.bowes@ndph.ox.ac.uk]
<br>
<b>Sent:</b> 12 October 2017 14:35<br>
<b>To:</b> info-ingres@lists.planetingres.org<br>
<b>Subject:</b> [Info-ingres] database procedures, string concatenation. long varchars and my slow descent into insanity<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Hi All,<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">II 10.2.0 (a64.lnx/100) &#43;p15162<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Here&#8217;s some fun&#8230;<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">create table a_long(txt long varchar not null not default);<o:p></o:p></p>
<p class="MsoNormal">create table another_long(txt long varchar not null not default);<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Insert a decent sized string.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Do a select txt from a_long and all is well.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Do a select &#8216;@&#8217; &#43; txt from a_long and you are greeted with: E_SC0206<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Plus a host of message in the errlog indicating the length of the object is screwed up.<o:p></o:p></p>
<p class="MsoNormal">DBHUB_NDPH_OX_AC_U::[43371&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 2844&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,&nbsp; 00007fd9d309c200, aduredeem.c:888&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]: Thu Oct 12 13:50:03 2017 E_AD7004_BAD_BLOB A peripheral datatype (BLOB) was found whose coupon length did not agree with the amount of data
 found.<o:p></o:p></p>
<p class="MsoNormal">DBHUB_NDPH_OX_AC_U::[43371&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 2844&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,&nbsp; 00007fd9d309c200, scsqncr.c:14173&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]: Thu Oct 12 13:50:03 2017 E_SC0216_QEF_ERROR&nbsp;&nbsp;&nbsp; Error returned by QEF.<o:p></o:p></p>
<p class="MsoNormal">DBHUB_NDPH_OX_AC_U::[43371&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , 2844&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,&nbsp; 00007fd9d309c200, scsqncr.c:14174&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]: Thu Oct 12 13:50:03 2017 E_SC0206_CANNOT_PROCESS&nbsp;&nbsp; An internal error prevents further processing of this query.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Now the funny bit. &nbsp;I&#8217;m going to use string concatenation inside a database procedure:<o:p></o:p></p>
<p class="MsoNormal">create procedure insert_long<o:p></o:p></p>
<p class="MsoNormal">as declare<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; msg&nbsp;&nbsp; varchar(256) not null not default;<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; items long varchar not null not default;<o:p></o:p></p>
<p class="MsoNormal">begin<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; select txt into :items from a_long;<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; insert into another_long(txt)<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; values(<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@' &#43; items<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; );<o:p></o:p></p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;<o:p></o:p></p>
<p class="MsoNormal">end;<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">execute procedure insert_long&#8230;<o:p></o:p></p>
<p class="MsoNormal">No error is generated but a select txt from another_long shows the data is mangled.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">On one consistent example I have a string which contains the element: ^F21000[10&amp;i#nc=7&amp;i#ety=11&amp;i#eid=1001&amp;i#c0=2&amp;i#c1=4&amp;i#c2=2001&amp;i#c3=2002&amp;i#c4=4001&amp;i#c5=4002&amp;i#c6=4003]^F21001<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">But the data inserted into another_long has become:<o:p></o:p></p>
<p class="MsoNormal">^F21000[10&amp;i#nc=7&amp;i#ety=11&amp;i#eid=1001&amp;i#c0=2&amp;i#c1=4&amp;i#c2=2001&amp;i#c3=2002&amp;i#c4=4001&amp;i#c5=4002&amp;i#c=4003]^F21001^<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Yes I am going to raise a bug.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Martin Bowes<o:p></o:p></p>
</div>
</body>
</html>