| -- Test: TEST315 |
| -- Functionality: This tests the handling of 3-byte UTF8 characters |
| -- Expected files: EXPECTED315 |
| -- Tables created: cs315t* |
| -- Limitations: None |
| -- |
| -- @@@ START COPYRIGHT @@@ |
| -- |
| -- Licensed to the Apache Software Foundation (ASF) under one |
| -- or more contributor license agreements. See the NOTICE file |
| -- distributed with this work for additional information |
| -- regarding copyright ownership. The ASF licenses this file |
| -- to you under the Apache License, Version 2.0 (the |
| -- "License"); you may not use this file except in compliance |
| -- with the License. You may obtain a copy of the License at |
| -- |
| -- http://www.apache.org/licenses/LICENSE-2.0 |
| -- |
| -- Unless required by applicable law or agreed to in writing, |
| -- software distributed under the License is distributed on an |
| -- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| -- KIND, either express or implied. See the License for the |
| -- specific language governing permissions and limitations |
| -- under the License. |
| -- |
| -- @@@ END COPYRIGHT @@@ |
| |
| --set terminal_charset utf8; -- NOT on SeaQuest |
| --set session default iso_mapping 'UTF8'; -- NOT on SeaQuest |
| |
| obey test315(clnup); |
| |
| log log315 clear; |
| |
| obey test315(ddl); |
| |
| obey test315(Three_Byte_tests); |
| |
| obey test315(clnup); |
| |
| log; |
| exit; |
| |
| ?section ddl |
| |
| create schema cs315s; |
| set schema cs315s; |
| |
| ?section Three_Byte_tests |
| |
| select converttohex(cast( x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(8))) from (values(0))x; |
| select converttohex(cast(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(8 BYTES) character set utf8)) from (values(0))x; |
| select converttohex(cast( x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(9))) from (values(0))x; |
| select converttohex(cast(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(9 BYTES) character set utf8)) from (values(0))x; |
| select converttohex(cast( x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(12))) from (values(0))x; |
| select converttohex(cast(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3' as char(12 BYTES) character set utf8)) from (values(0))x; |
| -- |
| set terminal_charset gbk; |
| select cast(_ucs2 x'515c515c515c515c' as char(11 bytes) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c' as char(12 bytes) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c' as char(3 ) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c' as char(4 ) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c0020' as char(12 bytes) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c0020' as char(13 bytes) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c0020' as char(4 ) character set utf8) from (values(1))t; |
| select cast(_ucs2 x'515c515c515c515c0020' as char(5 ) character set utf8) from (values(1))t; |
| -- |
| select octet_length(cast(_ucs2 x'515c515c515c515c' as char(11 bytes) character set utf8)), converttohex(cast(_ucs2 x'515c515c515c515c' as char(11 bytes) character set utf8)) from (values(1))t; |
| select octet_length(cast(_ucs2 x'515c515c515c515c' as char(13 bytes) character set utf8)), converttohex(cast(_ucs2 x'515c515c515c515c' as char(13 bytes) character set utf8)) from (values(1))t; |
| select octet_length(cast(_ucs2 x'515c515c515c515c' as char(3 ) character set utf8)), converttohex(cast(_ucs2 x'515c515c515c515c' as char(3 ) character set utf8)) from (values(1))t; |
| select octet_length(cast(_ucs2 x'515c515c515c515c' as char(5 ) character set utf8)), converttohex(cast(_ucs2 x'515c515c515c515c' as char(5 ) character set utf8)) from (values(1))t; |
| set terminal_charset iso88591; |
| -- |
| select converttohex(x'E0 A0 A1' || _utf8 x'E0 A0 A1') from (values(0))x; |
| select 'BAD' from (values(0))x where x'E0 A0 A1' = _utf8 x'E0 A0 A1'; |
| select 'OK ' from (values(0))x where x'E0 A0 A1' != _utf8 x'E0 A0 A1'; |
| |
| select converttohex(substr( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',1,3)) from (values(0))x; |
| select converttohex(substr(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',1,3)) from (values(0))x; |
| |
| select converttohex(substr( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',2,2)) from (values(0))x; |
| select converttohex(substr(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',2,2)) from (values(0))x; |
| |
| select converttohex(insert( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 2, 0, 'Z')) from (values(0))x; |
| select converttohex(insert(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 2, 0, 'Z')) from (values(0))x; |
| select converttohex(insert( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 2, 2, 'Z')) from (values(0))x; |
| select converttohex(insert(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 2, 2, 'Z')) from (values(0))x; |
| |
| select converttohex(replace( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', x'E0 A0 A2', x'E0 A3 A7')) from (values(0))x; |
| select converttohex(replace(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', x'E0 A0 A2', x'E0 A3 A7')) from (values(0))x; |
| select converttohex(replace(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', _utf8 x'E0 A0 A2', x'E0 A3 A7')) from (values(0))x; |
| select converttohex(replace(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', _utf8 x'E0 A0 A2', _utf8 x'E0 A3 A7')) from (values(0))x; |
| select CODE_VALUE( _utf8 x'20 20 21 E0 A0 A2 E0 A0 A3 E0 A0 A4') from (values(0))x; |
| select CODE_VALUE( _utf8 x'C9 A0 20 E0 A0 A2 E0 A0 A3 E0 A0 A4') from (values(0))x; |
| select CODE_VALUE( _utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4') from (values(0))x; |
| select CODE_VALUE( _utf8 x'F7 BF BF BF 20 E0 A0 A2 E0 A0 A3' ) from (values(0))x; |
| select case when _utf8 x'E0 A0 A1' = CHAR(CODE_VALUE(_utf8 x'E0 A0 A1'),UTF8) then 'GOOD' else 'BAD' end from (values(0))x; |
| select converttohex(LOWER( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4')) from (values(0))x; |
| select converttohex(LOWER(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4')) from (values(0))x; |
| select converttohex(UPPER( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4')) from (values(0))x; |
| select converttohex(UPPER(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4')) from (values(0))x; |
| select converttohex(UPPER(_ucs2 x'1FF7 1FCC FB04')) from (values(0))x; |
| select converttohex(UPPER(TRANSLATE(_ucs2 x'1FF7 1FCC FB04' USING UCS2toUTF8))) from (values(0))x; |
| select * from (values(1))x where UPPER(_ucs2 x'1FF7 1FCC FB04') = UPPER(TRANSLATE(_ucs2 x'1FF7 1FCC FB04' USING UCS2toUTF8)); |
| select converttohex(LEFT( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',3)) from (values(0))x; |
| select converttohex(LEFT(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',3)) from (values(0))x; |
| select converttohex(RIGHT( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',3)) from (values(0))x; |
| select converttohex(RIGHT(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4',3)) from (values(0))x; |
| select converttohex(LPAD( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, x'E1 A1 A1')) from (values(0))x; |
| select converttohex(LPAD(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, x'E1 A1 A1')) from (values(0))x; |
| select converttohex(LPAD(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, _utf8 x'E1 A1 A1')) from (values(0))x; |
| create table cs315t99 (c1 varchar(10) character set utf8, c2 char(10) character set utf8) no partition; |
| insert into cs315t99 values(_UTF8 x'E4B8ADE59BAF', _UTF8 x'E4B8ADE59BAF'); |
| select LPAD(c1,0,_utf8'z') from cs315t99; |
| select LPAD(c2,0,_utf8'z') from cs315t99; |
| select RPAD(c1,0,_utf8'z') from cs315t99; |
| select RPAD(c2,0,_utf8'z') from cs315t99; |
| select LPAD(c1,2,_utf8'z') from cs315t99; |
| select LPAD(c2,2,_utf8'z') from cs315t99; |
| select RPAD(c1,2,_utf8'z') from cs315t99; |
| select RPAD(c2,2,_utf8'z') from cs315t99; |
| select LPAD(c1,3,_utf8'z') from cs315t99; |
| select LPAD(c2,3,_utf8'z') from cs315t99; |
| select RPAD(c1,3,_utf8'z') from cs315t99; |
| select RPAD(c2,3,_utf8'z') from cs315t99; |
| select LPAD(c1,5,_utf8'ab') from cs315t99; |
| select LPAD(c2,5,_utf8'ab') from cs315t99; |
| select RPAD(c1,5,_utf8'ab') from cs315t99; |
| select RPAD(c2,5,_utf8'ab') from cs315t99; |
| select RPAD(c1,13,_utf8'ab') from cs315t99; |
| select RPAD(c2,13,_utf8'ab') from cs315t99; |
| select converttohex(RPAD( x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, x'E1 A1 A1')) from (values(0))x; |
| select converttohex(RPAD(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, x'E1 A1 A1')) from (values(0))x; |
| select converttohex(RPAD(_utf8 x'E0 A0 A1 E0 A0 A2 E0 A0 A3 E0 A0 A4', 15, _utf8 x'E1 A1 A1')) from (values(0))x; |
| |
| select DECODE(x'E0 A0 A1', _utf8 x'E0 A0 A1', 'BAD', |
| 'E0 A0 A1', 'BAD', |
| substr(x'E0 A0 A2 E0 A0 A1',4,3), 'GOOD') |
| from (values(0))x; |
| select DECODE(_utf8 x'E0 A0 A1', x'E0 A0 A1', 'BAD', |
| substr(x'E0 A0 A2 E0 A0 A1',2,1), 'BAD', |
| substr(_utf8 x'E0 A0 A2 E0 A0 A1',2,1), 'GOOD') |
| from (values(0))x; |
| |
| select converttohex(TRANSLATE('abcdefgh' || _utf8 x'E0A0A0' using UTF8toUCS2)) from (values(0))x; |
| -- |
| -- Both of the following should get error at runtime because TRANSLATION encounters non-ISO88591 char |
| -- |
| select converttohex(TRANSLATE(TRANSLATE('abcdefgh' || _utf8 x'E0A0A0' using UTF8toUCS2) using UCS2toISO88591)) from (values(0))x; |
| select converttohex(TRANSLATE('abcdefgh' || _utf8 x'E0A0A0' using UTF8toISO88591)) from (values(0))x; |
| |
| create table cs315t1 (uf8 char(8) character set utf8, uf8v varchar(8) character set utf8) no partition; |
| insert into cs315t1 values(_utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| select char_length( TRIM(_utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(_utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(_utf8 x'E0A0A0' FROM uf8)) from cs315t1 order by 1,2,3; |
| select char_length( TRIM(_utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(_utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(_utf8 x'E0A0A0' FROM uf8v)) from cs315t1 order by 1,2,3; |
| select char_length( TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)) from cs315t1 order by 1,2,3; |
| select char_length( TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)) from cs315t1 order by 1,2,3; |
| select char_length( TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)) from cs315t1 order by 1,2,3; |
| select char_length( TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)) from cs315t1 order by 1,2,3; |
| -- |
| create table cs315t2 (uf8 char(10) character set utf8, uf8v varchar(10) character set utf8) no partition; |
| insert into cs315t2 values(_utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| select char_length( TRIM(_utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(_utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(_utf8 x'E0A0A0' FROM uf8)) from cs315t2 order by 1,2,3; |
| select char_length( TRIM(_utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(_utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(_utf8 x'E0A0A0' FROM uf8v)) from cs315t2 order by 1,2,3; |
| select char_length( TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8)) from cs315t2 order by 1,2,3; |
| select char_length( TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(LEADING _utf8 x'E0A0A0' FROM uf8v)) from cs315t2 order by 1,2,3; |
| select char_length( TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)), |
| octet_length(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)), |
| converttohex(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8)) from cs315t2 order by 1,2,3; |
| select char_length( TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)), |
| octet_length(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)), |
| converttohex(TRIM(TRAILING _utf8 x'E0A0A0' FROM uf8v)) from cs315t2 order by 1,2,3; |
| |
| create table cs315t3 (trimc char(1) character set utf8, uf8 char(8) character set utf8, uf8v varchar(8) character set utf8) no partition; |
| insert into cs315t3 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| insert into cs315t3 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 333' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 333' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| insert into cs315t3 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 444' _utf8 x'E0A0A0' _utf8 x'2020', |
| _utf8 x'E0A0A0' _utf8' 444' _utf8 x'E0A0A0' _utf8 x'2020'); |
| insert into cs315t3 values(_utf8' ', |
| _utf8' 555555 ', |
| _utf8' 555555 '); |
| insert into cs315t3 values(_utf8 x'F7BFBFBF', |
| _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF' _utf8'66' _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF', |
| _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF' _utf8'66' _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF'); |
| insert into cs315t3 values(_utf8 x'F7BFBFBF', |
| _utf8 x'F7BFBFBF' _utf8' 77' _utf8 x'F7BFBFBFF7BFBFBF' _utf8 x'20', |
| _utf8 x'F7BFBFBF' _utf8' 77' _utf8 x'F7BFBFBFF7BFBFBF' _utf8 x'20'); |
| select char_length( TRIM( trimc from uf8 ) ), |
| octet_length( TRIM( trimc from uf8 ) ), |
| converttohex( TRIM( trimc from uf8 ) ) from cs315t3 order by 1,2,3; |
| |
| select char_length( TRIM( trimc from uf8v ) ), |
| octet_length( TRIM( trimc from uf8v ) ), |
| converttohex( TRIM( trimc from uf8v ) ) from cs315t3 order by 1,2,3; |
| |
| select char_length( TRIM( LEADING trimc from uf8 ) ), |
| octet_length( TRIM( LEADING trimc from uf8 ) ), |
| converttohex( TRIM( LEADING trimc from uf8 ) ) from cs315t3 order by 1,2,3; |
| |
| select char_length( TRIM( LEADING trimc from uf8v ) ), |
| octet_length( TRIM( LEADING trimc from uf8v ) ), |
| converttohex( TRIM( LEADING trimc from uf8v ) ) from cs315t3 order by 1,2,3; |
| |
| select char_length( TRIM( TRAILING trimc from uf8 ) ), |
| octet_length( TRIM( TRAILING trimc from uf8 ) ), |
| converttohex( TRIM( TRAILING trimc from uf8 ) ) from cs315t3 order by 1,2,3; |
| |
| select char_length( TRIM( TRAILING trimc from uf8v ) ), |
| octet_length( TRIM( TRAILING trimc from uf8v ) ), |
| converttohex( TRIM( TRAILING trimc from uf8v ) ) from cs315t3 order by 1,2,3; |
| -- |
| -- Now try with CHAR(32 BYTES) CHARACTER SET UTF8 |
| -- |
| create table cs315t4 (trimc char(1) character set utf8, uf8 char(32 BYTES) character set utf8, uf8v varchar(32 BYTES) character set utf8) no partition; |
| insert into cs315t4 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0E0A0A0E0A0A0' _utf8'zz' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| insert into cs315t4 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 333' _utf8 x'E0A0A0E0A0A0E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 333' _utf8 x'E0A0A0E0A0A0E0A0A0'); |
| insert into cs315t4 values(_utf8 x'E0A0A0', |
| _utf8 x'E0A0A0' _utf8' 444' _utf8 x'E0A0A0' _utf8 x'2020', |
| _utf8 x'E0A0A0' _utf8' 444' _utf8 x'E0A0A0' _utf8 x'2020'); |
| insert into cs315t4 values(_utf8' ', |
| _utf8' 777777 ', |
| _utf8' 777777 '); |
| insert into cs315t4 values(_utf8 x'F7BFBFBF', |
| _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF' _utf8'33' _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF', |
| _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF' _utf8'33' _utf8 x'F7BFBFBFF7BFBFBFF7BFBFBF'); |
| insert into cs315t4 values(_utf8 x'F7BFBFBF', |
| _utf8 x'F7BFBFBF' _utf8' 55' _utf8 x'F7BFBFBFF7BFBFBF' _utf8 x'20', |
| _utf8 x'F7BFBFBF' _utf8' 55' _utf8 x'F7BFBFBFF7BFBFBF' _utf8 x'20'); |
| select char_length( TRIM( trimc from uf8 ) ), |
| octet_length( TRIM( trimc from uf8 ) ), |
| converttohex( TRIM( trimc from uf8 ) ) from cs315t4 order by 1,2,3; |
| |
| select char_length( TRIM( trimc from uf8v ) ), |
| octet_length( TRIM( trimc from uf8v ) ), |
| converttohex( TRIM( trimc from uf8v ) ) from cs315t4 order by 1,2,3; |
| |
| select char_length( TRIM( LEADING trimc from uf8 ) ), |
| octet_length( TRIM( LEADING trimc from uf8 ) ), |
| converttohex( TRIM( LEADING trimc from uf8 ) ) from cs315t4 order by 1,2,3; |
| |
| select char_length( TRIM( LEADING trimc from uf8v ) ), |
| octet_length( TRIM( LEADING trimc from uf8v ) ), |
| converttohex( TRIM( LEADING trimc from uf8v ) ) from cs315t4 order by 1,2,3; |
| |
| select char_length( TRIM( TRAILING trimc from uf8 ) ), |
| octet_length( TRIM( TRAILING trimc from uf8 ) ), |
| converttohex( TRIM( TRAILING trimc from uf8 ) ) from cs315t4 order by 1,2,3; |
| |
| select char_length( TRIM( TRAILING trimc from uf8v ) ), |
| octet_length( TRIM( TRAILING trimc from uf8v ) ), |
| converttohex( TRIM( TRAILING trimc from uf8v ) ) from cs315t4 order by 1,2,3; |
| |
| -- tests for REVERSE function on single and multibyte characters |
| select char_length(reverse('abc')) from dual; |
| select reverse('abc') from dual; |
| |
| select char_length(reverse('')) from dual; |
| select reverse('') from dual; |
| |
| select char_length(reverse(cast('abc' as varchar(10)))) from dual; |
| select reverse(cast('abc' as varchar(10))) from dual; |
| |
| select char_length(_utf8 x'C3B6C3BAC3BBE0A0A0') from dual; |
| select converttohex(_utf8 x'C3B6C3BAC3BBE0A0A0') from dual; |
| |
| select char_length(reverse(_utf8 x'C3B6C3BAC3BBE0A0A0')) from dual; |
| select converttohex(reverse(_utf8 x'C3B6C3BAC3BBE0A0A0')) from dual; |
| |
| select char_length(cast(_utf8 x'C3B6C3BAC3BBE0A0A0' as varchar(10))) from dual; |
| select converttohex(cast(_utf8 x'C3B6C3BAC3BBE0A0A0' as varchar(10))) from dual; |
| |
| select char_length(reverse(cast(_utf8 x'C3B6C3BAC3BBE0A0A0' as varchar(10)))) from dual; |
| select converttohex(reverse(cast(_utf8 x'C3B6C3BAC3BBE0A0A0' as varchar(10)))) from dual; |
| |
| select char_length('abc' || _utf8 x'C3B6C3BAC3BBE0A0A0') from dual; |
| select converttohex('abc' || _utf8 x'C3B6C3BAC3BBE0A0A0') from dual; |
| |
| select char_length(reverse('abc' || _utf8 x'C3B6C3BAC3BBE0A0A0')) from dual; |
| select converttohex(reverse('abc' || _utf8 x'C3B6C3BAC3BBE0A0A0')) from dual; |
| |
| select char_length(_ucs2 x'515a515b515c515d') from dual; |
| select converttohex(_ucs2 x'515a515b515c515d') from dual; |
| |
| select char_length(reverse(_ucs2 x'515a515b515c515d')) from dual; |
| select converttohex(reverse(_ucs2 x'515a515b515c515d')) from dual; |
| |
| -- tests for OVERLAY function |
| select overlay('w1234567xyz' placing 'abcde' from 3) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 3 for 4) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 3 for 5) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 3 for 6) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 30 for 6) from dual; |
| select overlay(cast(NULL as char(10)) placing 'abcde' from 30 for 6) from dual; |
| select converttohex(overlay (uf8 placing uf8v from 4 for 2)) from cs315t4; |
| select converttohex(overlay(_utf8 x'C3B6C3BAC3BBE0A0A0' placing _UTF8 x'C3B6' from 2 for 2)) from dual; |
| select stuff ('abcdefg', 3, 4, 'xy') from dual; |
| select stuff ('abcdefg', 1, 0, 'xy') from dual; |
| select unhex(hex((overlay(to_binary('abcdefg') placing to_binary('wx') from 2 for 3)))) from dual; |
| select unhex(hex((overlay(to_binary('abcdefg') placing 'wx' from 2 for 3)))) from dual; |
| |
| -- OVERLAY error cases |
| select overlay('w1234567xyz' placing 'abcde' from 1.2 for 4) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 1 for 4.1) from dual; |
| select overlay('w1234567xyz' placing 'abcde' from 'a' for 4) from dual; |
| select stuff ('abcdefg', -1, 4, 'xy') from dual; |
| select overlay(1 placing 'abcde' from 1 for 4) from dual; |
| select overlay('xy' placing 'abcde' from -1 for 4) from dual; |
| select overlay('xy' placing 'abcde' from 0 for -4) from dual; |
| |
| ?section clnup |
| |
| drop schema cs315s cascade; |
| |