Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from puck1183.startdedicated.com (localhost [127.0.0.1])
 by puck1183.startdedicated.com (Postfix) with ESMTP id B5E5E19602AD
 for <oracle-l@orafaq.com>; Fri, 11 Nov 2016 17:39:24 +0100 (CET)
Received: from turing.freelists.org (turing.freelists.org [206.53.239.180])
 by puck1183.startdedicated.com (Postfix) with ESMTPS
 for <oracle-l@orafaq.com>; Fri, 11 Nov 2016 17:39:24 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 5A0D461EDE;
 Fri, 11 Nov 2016 11:39:23 -0500 (EST)
X-Virus-Scanned: Debian amavisd-new at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id QE5YFcxt33Om; Fri, 11 Nov 2016 11:39:23 -0500 (EST)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 9DD8B61EB7;
 Fri, 11 Nov 2016 11:39:04 -0500 (EST)
Received: with ECARTIS (v1.0.0; list oracle-l); Fri, 11 Nov 2016 11:37:42 -0500 (EST)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 9431D61E5D
 for <oracle-l@freelists.org>; Fri, 11 Nov 2016 11:37:42 -0500 (EST)
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ZN1uJk-Ak66G for <oracle-l@freelists.org>;
 Fri, 11 Nov 2016 11:37:42 -0500 (EST)
Received: from icecream.delink-ssl.net (icecream.delink-ssl.net [148.251.178.35])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 51C3061E54
 for <oracle-l@freelists.org>; Fri, 11 Nov 2016 11:37:40 -0500 (EST)
Received: from KBI7PROF ([78.42.143.114])
        by icecream.delink-ssl.net (deLink mail system) with ASMTP (SSL) id 201611111737397495
        for <oracle-l@freelists.org>; Fri, 11 Nov 2016 17:37:39 +0100
From: "Willy Klotz" <willyk@kbi-gmbh.de>
To: <oracle-l@freelists.org>
References: <A9E4505F-A1A3-4C72-BE1B-DB2F226EF4CC@strychnine.co.uk>
In-Reply-To: <A9E4505F-A1A3-4C72-BE1B-DB2F226EF4CC@strychnine.co.uk>
Subject: AW: Testing Oracle fitness for purpose/internal test suite
Date: Fri, 11 Nov 2016 17:37:37 +0100
Message-ID: <!&!AAAAAAAAAAAYAAAAAAAAAGqmGAFaa91EkYCioEyRxXPCgAAAEAAAAH+fJW7j6etKmXVEQa62sa0BAAAAAA==@kbi-gmbh.de>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="----=_NextPart_000_0109_01D23C42.4BF12A50"
Content-Language: de
X-archive-position: 66815
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: willyk@kbi-gmbh.de
Precedence: normal
Reply-To: willyk@kbi-gmbh.de
List-help: <mailto:ecartis@freelists.org?Subject=help>
List-unsubscribe: <oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-subscribe: <oracle-l-request@freelists.org?Subject=subscribe>
List-owner: <mailto:mark.bobak@proquest.com>
List-post: <mailto:oracle-l@freelists.org>
List-archive: <http://www.freelists.org/archives/oracle-l>
X-list: oracle-l
------=_NextPart_000_0109_01D23C42.4BF12A50
Content-Type: text/plain;
 charset="us-ascii"
Content-Transfer-Encoding: 7bit

A large customer refuses to apply security PSUs because of the (neagtive)
side-effects they had seen in the past.
 
I would love to have a set of "basic functional tests", so I can see that a
patch only corrects the problem it is supposed to correct .
 
Regards
Willy Klotz
 
 
Von: oracle-l-bounce@freelists.org [mailto:oracle-l-bounce@freelists.org] Im
Auftrag von Michael D O'Shea/Woodward Informatics Ltd
Gesendet: Donnerstag, 10. November 2016 09:52
An: ORACLE-L <oracle-l@freelists.org>
Betreff: Testing Oracle fitness for purpose/internal test suite
 
 
Recently I encountered a very large organisation that had a comprehensive
suite of unit tests that tested stock "Oracle" SQL & PL/SQL behaviour. Yes I
really did write that. The client likely had a suite of unit tests that
tested their in-house developed code too but we were discussing testing of
stock Oracle functionality. In my book, I test my own code, and I expect the
vendor to test and certify their software is OK and "does what it says on
the tin". I found the client behaviour atypical to say the least. Their
issue was that they had commited to Oracle, but there was a quality
confidence issue.
 
Their tests appeared to be done for two reasons.
 
1. To confirm Oracle patch/patch sets or version upgrades did not introduce
unexpected behaviour, or changes to existing RDBMS behaviour, that would
manifest itself in their critical business systems.
2. To lay the law down in terms of their internal coding standards, "though
shall not use LISTAGG" for example.
 
The following contrived and silly code snippet returns the length of a
VARCHAR2 aggregated using LISTAGG. The LENGTH(y) is 4*999+3=3999. All good
(again this is contrived code, but from memory it is the type of scripted
code the organisation had in their test suite).
 
 
SQL>
SQL>
SQL> set serveroutput on size 100000
SQL> set timing on
SQL>
SQL> declare
  2    xx char(999) := 'char not varchar2 so padded';
  3    y varchar2(32767);  --PL/SQL limit 32767, not 4000
  4  begin
  5   select distinct listagg(x4, ',')
  6     within group (order by 1)
  7       over (partition by 1)
  8     into y
  9      from (
 10                       select xx x4 from dual
 11             union all select xx    from dual
 12             union all select xx    from dual
 13             union all select xx    from dual
 14           );
 15    dbms_output.put_line(to_char(length(y)));
 16  end;
 17  /
3999
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.02
SQL>
SQL>
SQL>
 
 
 
This is the expected behaviour, and 3999 the expected VARCHAR2 length (4 *
999 = 3996 + 3 for the 3 commas).
 
 
Something like the next test they performed is shown below. Although
surprising to me, it was the expected behaviour - the limit on LISTAGG is
4000 bytes not 32k, but it was a test "pass".
 
 
 
SQL>
SQL>
SQL>
SQL>
SQL> declare
  2    xx char(1000) := 'char not varchar2 so padded';
  3    y varchar2(32767);  --PL/SQL limit 32767, not 4000
  4  begin
  5   select distinct listagg(x4, ',')
  6     within group (order by 1)
  7       over (partition by 1)
  8     into y
  9      from (
 10                       select xx x4 from dual
 11             union all select xx    from dual
 12             union all select xx    from dual
 13             union all select xx    from dual
 14           );
 15    dbms_output.put_line(to_char(length(y)));
 16  end;
 17  /
declare
*
ERROR at line 1:
ORA-01489: result of string concatenation is too long
ORA-06512: at line 5
 
Elapsed: 00:00:00.03
SQL>
 
 
 
 
 
The next test was a failure for the client and showcased their concerns.
 
 
 
 
 
SQL>
SQL>
SQL>
SQL>
SQL>
SQL> declare
  2    xx char(2001) := 'char not varchar2 so padded';
  3    y varchar2(32767);  --PL/SQL limit 32767, not 4000
  4  begin
  5   select distinct listagg(x4, ',')
  6     within group (order by 1)
  7       over (partition by 1)
  8     into y
  9      from (
 10                       select xx x4 from dual
 11             union all select xx    from dual
 12             union all select xx    from dual
 13             union all select xx    from dual
 14           );
 15    dbms_output.put_line(to_char(length(y)));
 16  end;
 17  /
declare
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [15851], [3], [2], [1], [1], [],
[], [], [], [], [], []
 
Elapsed: 00:00:00.08
SQL>
SQL>
 
 
 
 
While clearly this is just a plain old Oracle bug (an edge case - 2000 vs.
2001 bytes, half the 4000 byte limit), the test result confirmed the client
confidence issue in internal Oracle testing and fitness for purpose, with a
knock-on effect that their internal coding standards documentation
prohibited the use of LISTAGG (I do not know whether they raised the issue
with Oracle but this isn't my point), and other built-in functionality.
 
 
My question to you all is "Has anyone else encountered the behaviour where
clients run a suite of automated tests to test out-of-the-box Oracle stock
functionality, in otherwords running what are in effect unit tests that
should be performed by the Oracle prior to shipping, not the client?".
Despite my views of quality and testing at Oracle, I still cannot get my
head around a client testing out-of-the-box functionality with their own
test suite like this.
 
 
 
I am not sure what version of Oracle the client was using, but I have just
retested using the following version (below) and can reproduce the
behaviour.
 
 
Regards
 
Mike
http://www.strychnine.co.uk
 
 
 
 
SQL>
SQL>
SQL>
SQL> select * from v$version;
BANNER
CON_ID
----------------------------------------------------------------------------
---- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
0
PL/SQL Release 12.1.0.2.0 - Production
0
CORE    12.1.0.2.0      Production
0
TNS for Solaris: Version 12.1.0.2.0 - Production
0
NLSRTL Version 12.1.0.2.0 - Production
0
Elapsed: 00:00:00.02
SQL>
SQL>
SQL>
 
 
 
 

------=_NextPart_000_0109_01D23C42.4BF12A50
Content-Type: text/html;
 charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii"><meta name=3DProgId content=3DWord.Document><meta =
name=3DGenerator content=3D"Microsoft Word 15"><meta name=3DOriginator =
content=3D"Microsoft Word 15"><link rel=3DFile-List =
href=3D"cid:filelist.xml@01D23C42.4B5FE6D0"><!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:EnvelopeVis/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>DE</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"false" =
DefSemiHidden=3D"false" DefQFormat=3D"false" DefPriority=3D"99" =
LatentStyleCount=3D"371">
<w:LsdException Locked=3D"false" Priority=3D"0" QFormat=3D"true" =
Name=3D"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" =
Name=3D"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"header"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footer"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"index heading"/>
<w:LsdException Locked=3D"false" Priority=3D"35" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"caption"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"table of figures"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"envelope address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"envelope return"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"footnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"line number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"page number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"endnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"endnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"table of authorities"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"macro"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"toa heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Bullet 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Number 5"/>
<w:LsdException Locked=3D"false" Priority=3D"10" QFormat=3D"true" =
Name=3D"Title"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Closing"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Signature"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Default Paragraph Font"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"List Continue 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Message Header"/>
<w:LsdException Locked=3D"false" Priority=3D"11" QFormat=3D"true" =
Name=3D"Subtitle"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Salutation"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Date"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text First Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text First Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Note Heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Body Text Indent 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Block Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Hyperlink"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"FollowedHyperlink"/>
<w:LsdException Locked=3D"false" Priority=3D"22" QFormat=3D"true" =
Name=3D"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" QFormat=3D"true" =
Name=3D"Emphasis"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Document Map"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Plain Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"E-mail Signature"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Top of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Bottom of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal (Web)"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Acronym"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Cite"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Code"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Definition"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Keyboard"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Preformatted"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Sample"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Typewriter"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"HTML Variable"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Normal Table"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"annotation subject"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"No List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Outline List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Simple 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Classic 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Colorful 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Columns 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Grid 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table List 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table 3D effects 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Contemporary"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Elegant"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Professional"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Subtle 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Subtle 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Web 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Balloon Text"/>
<w:LsdException Locked=3D"false" Priority=3D"39" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Table Theme"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Placeholder =
Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" QFormat=3D"true" =
Name=3D"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light =
Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid =
3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful =
List"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful =
Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Revision"/>
<w:LsdException Locked=3D"false" Priority=3D"34" QFormat=3D"true" =
Name=3D"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" QFormat=3D"true" =
Name=3D"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" QFormat=3D"true" =
Name=3D"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading =
1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading =
2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful =
Shading Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" QFormat=3D"true" =
Name=3D"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" QFormat=3D"true" =
Name=3D"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" QFormat=3D"true" =
Name=3D"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" QFormat=3D"true" =
Name=3D"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" QFormat=3D"true" =
Name=3D"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" =
UnhideWhenUsed=3D"true" QFormat=3D"true" Name=3D"TOC Heading"/>
<w:LsdException Locked=3D"false" Priority=3D"41" Name=3D"Plain Table =
1"/>
<w:LsdException Locked=3D"false" Priority=3D"42" Name=3D"Plain Table =
2"/>
<w:LsdException Locked=3D"false" Priority=3D"43" Name=3D"Plain Table =
3"/>
<w:LsdException Locked=3D"false" Priority=3D"44" Name=3D"Plain Table =
4"/>
<w:LsdException Locked=3D"false" Priority=3D"45" Name=3D"Plain Table =
5"/>
<w:LsdException Locked=3D"false" Priority=3D"40" Name=3D"Grid Table =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 =
Light Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 =
Dark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 =
Light Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 =
Dark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 =
Colorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 =
Colorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;
	mso-fareast-font-family:Calibri;}
a:link, span.MsoHyperlink
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	text-decoration:underline;
	text-underline:single;}
span.E-MailFormatvorlage17
	{mso-style-type:personal-reply;
	mso-style-noshow:yes;
	mso-style-unhide:no;
	mso-ansi-font-size:11.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ascii-font-family:Calibri;
	mso-fareast-font-family:Calibri;
	mso-hansi-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
	{mso-style-name:"Normale Tabelle";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman",serif;}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DDE link=3Dblue =
vlink=3Dpurple style=3D'tab-interval:35.4pt'><div =
class=3DWordSection1><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'>A large customer =
refuses to apply security PSUs because of the (neagtive) side-effects =
they had seen in the past.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></sp=
an></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'>I would love to have =
a set of &#8222;basic functional tests&#8221;, so I can see that a patch =
only corrects the problem it is supposed to correct =
.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></sp=
an></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'>Regards<o:p></o:p></s=
pan></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'>Willy =
Klotz<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></sp=
an></p><p class=3DMsoNormal><span lang=3DEN-GB =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;=
mso-ansi-language:EN-GB;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></sp=
an></p><div><div style=3D'border:none;border-top:solid #E1E1E1 =
1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=3DMsoNormal><b><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-fo=
nt-family:"Times New Roman"'>Von:</span></b><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-fo=
nt-family:"Times New Roman"'> oracle-l-bounce@freelists.org =
[mailto:oracle-l-bounce@freelists.org] <b>Im Auftrag von </b>Michael D =
O'Shea/Woodward Informatics Ltd<br><b>Gesendet:</b> Donnerstag, 10. =
November 2016 09:52<br><b>An:</b> ORACLE-L =
&lt;oracle-l@freelists.org&gt;<br><b>Betreff:</b> Testing Oracle fitness =
for purpose/internal test suite<o:p></o:p></span></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Recently I encountered a very large organisation =
that had a comprehensive suite of unit tests that tested stock =
&quot;Oracle&quot; SQL &amp; PL/SQL behaviour. Yes I really did write =
that. The client likely had a suite of unit tests that tested their =
in-house developed code too but we were discussing testing of stock =
Oracle&nbsp;functionality. In my book, I test my own code, and I expect =
the vendor to test and certify their software is OK and &quot;does what =
it says on the tin&quot;. I found the client behaviour atypical to say =
the least. Their issue was that they had commited to Oracle, but there =
was a quality confidence issue.</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman"'><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Their tests appeared to be done for two =
reasons.</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>1. To confirm Oracle patch/patch sets or version =
upgrades did not introduce unexpected behaviour, or changes to existing =
RDBMS behaviour, that would manifest itself in their critical business =
systems.</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>2. To lay the law down in terms of their internal =
coding standards, &quot;though shall not use LISTAGG&quot; for =
example.</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>The following contrived and silly code snippet =
returns the length of a VARCHAR2 aggregated using LISTAGG. The LENGTH(y) =
is 4*999+3=3D3999. All good (again this is contrived code, but from =
memory it is the type of scripted code the organisation had in their =
test suite).</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; set serveroutput on size =
100000</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; set timing on</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; declare</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 2&nbsp; &nbsp; xx char(999) :=3D 'char not =
varchar2 so padded';</span><span style=3D'mso-fareast-font-family:"Times =
New Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 3&nbsp; &nbsp; y varchar2(32767);&nbsp; =
--PL/SQL limit 32767, not 4000</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 4&nbsp; begin</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 5 &nbsp; select distinct listagg(x4, =
',')</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 6 &nbsp; &nbsp; within group (order by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 7 &nbsp; &nbsp; &nbsp; over (partition by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 8 &nbsp; &nbsp; into y</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 9&nbsp; &nbsp; &nbsp; from (</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select xx x4 from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;13 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;14 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
);</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;15&nbsp; &nbsp; =
dbms_output.put_line(to_char(length(y)));</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;16&nbsp; end;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;17&nbsp; /</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>3999</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>PL/SQL procedure successfully =
completed.</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Elapsed: 00:00:00.02</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>This is the expected behaviour, and 3999 the =
expected VARCHAR2 length (4 * 999 =3D 3996 + 3 for the 3 =
commas).</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Something like the next test they performed is =
shown below. Although surprising to me, it was the expected behaviour - =
the limit on LISTAGG is 4000 bytes not 32k, but it was a test =
&quot;pass&quot;.</span><span style=3D'mso-fareast-font-family:"Times =
New Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; declare</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 2&nbsp; &nbsp; xx char(1000) :=3D 'char not =
varchar2 so padded';</span><span style=3D'mso-fareast-font-family:"Times =
New Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 3&nbsp; &nbsp; y varchar2(32767);&nbsp; =
--PL/SQL limit 32767, not 4000</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 4&nbsp; begin</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 5 &nbsp; select distinct listagg(x4, =
',')</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 6 &nbsp; &nbsp; within group (order by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 7 &nbsp; &nbsp; &nbsp; over (partition by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 8 &nbsp; &nbsp; into y</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 9&nbsp; &nbsp; &nbsp; from (</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select xx x4 from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;13 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;14 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
);</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;15&nbsp; &nbsp; =
dbms_output.put_line(to_char(length(y)));</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;16&nbsp; end;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;17&nbsp; /</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>declare</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>*</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>ERROR at line 1:</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>ORA-01489: result of string concatenation is too =
long</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>ORA-06512: at line 5</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Elapsed: 00:00:00.03</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>The next test was a failure for the client and =
showcased their concerns.</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; declare</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 2&nbsp; &nbsp; xx char(2001) :=3D 'char not =
varchar2 so padded';</span><span style=3D'mso-fareast-font-family:"Times =
New Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 3&nbsp; &nbsp; y varchar2(32767);&nbsp; =
--PL/SQL limit 32767, not 4000</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 4&nbsp; begin</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 5 &nbsp; select distinct listagg(x4, =
',')</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 6 &nbsp; &nbsp; within group (order by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 7 &nbsp; &nbsp; &nbsp; over (partition by =
1)</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 8 &nbsp; &nbsp; into y</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp; 9&nbsp; &nbsp; &nbsp; from (</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select xx x4 from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;13 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
union all select xx&nbsp; &nbsp; from dual</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;14 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
);</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;15&nbsp; &nbsp; =
dbms_output.put_line(to_char(length(y)));</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;16&nbsp; end;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;17&nbsp; /</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>declare</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>*</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>ERROR at line 1:</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>ORA-00600: internal error code, arguments: =
[15851], [3], [2], [1], [1], [], [], [], [], [], [], []</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Elapsed: 00:00:00.08</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>While clearly this is just a plain old Oracle bug =
(an edge case - 2000 vs. 2001 bytes, half the 4000 byte limit), the test =
result confirmed the client confidence issue in internal Oracle testing =
and fitness for purpose, with a knock-on effect that their internal =
coding standards documentation prohibited the use of LISTAGG (I do not =
know whether they raised the issue with Oracle but this isn't my point), =
and other&nbsp;built-in functionality.</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman"'><o:p></o:p></span></p></div><div><p class=3DMsoNormal><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>My question to you all is &quot;Has anyone else =
encountered the behaviour where clients run a suite of automated tests =
to test out-of-the-box Oracle stock functionality, in otherwords running =
what are in effect unit tests that should be performed by the Oracle =
prior to shipping, not the client?&quot;. Despite my views of quality =
and testing at Oracle, I still cannot get my head around a client =
testing&nbsp;</span><span =
style=3D'font-size:10.0pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>out-of-the-box</span><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>&nbsp;functionality with their own test suite like =
this.</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>I am not sure what version of Oracle the client =
was using, but I have just retested using the following version (below) =
and can reproduce the behaviour.</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Regards</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Mike</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'><a =
href=3D"http://www.strychnine.co.uk">http://www.strychnine.co.uk</a></spa=
n><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt; select * from v$version;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>BANNER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; CON_ID</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>---------------------------------------------------=
----------------------------- ----------</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Oracle Database 12c Enterprise Edition Release =
12.1.0.2.0 - 64bit Production&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; 0</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>PL/SQL Release 12.1.0.2.0 - Production&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>CORE&nbsp; &nbsp; 12.1.0.2.0&nbsp; &nbsp; &nbsp; =
Production&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
0</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>TNS for Solaris: Version 12.1.0.2.0 - =
Production&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; 0</span><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>NLSRTL Version 12.1.0.2.0 - Production&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>Elapsed: 00:00:00.02</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:7.5pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span =
style=3D'font-size:10.0pt;mso-fareast-font-family:"Times New =
Roman";color:#454545'>SQL&gt;</span><span =
style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman";color:#454545'><o:p>&nbsp;</o:p></span></p></div><div><p =
class=3DMsoNormal><span style=3D'mso-fareast-font-family:"Times New =
Roman"'><o:p>&nbsp;</o:p></span></p></div></div></body></html>
------=_NextPart_000_0109_01D23C42.4BF12A50--


--
http://www.freelists.org/webpage/oracle-l



