Received: from makus.postgresql.org ([98.129.198.125]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TGrEu-0004Yh-R8 for pgsql-sql@postgresql.org; Wed, 26 Sep 2012 13:01:20 +0000 Received: from plane.gmane.org ([80.91.229.3]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TGrEr-0002w2-FV for pgsql-sql@postgresql.org; Wed, 26 Sep 2012 13:01:20 +0000 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1TGrEs-0003Ft-8L for pgsql-sql@postgresql.org; Wed, 26 Sep 2012 15:01:18 +0200 Received: from ip-118-90-16-232.xdsl.xnet.co.nz ([118.90.16.232]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 26 Sep 2012 15:01:18 +0200 Received: from jasen by ip-118-90-16-232.xdsl.xnet.co.nz with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 26 Sep 2012 15:01:18 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: pgsql-sql@postgresql.org From: Jasen Betts Subject: Re: HOw to convert unicode to string Date: 26 Sep 2012 12:50:53 GMT Organization: Dis (not Dat) Organisation Lines: 49 Message-ID: References: <8A2A33BFAA5E2F408D0BBB80844412720487D0@xmb-aln-x03.cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-118-90-16-232.xdsl.xnet.co.nz X-Face: ?)Aw4rXwN5u0~$nqKj`xPz>xHCwgi^q+^?Ri*+R(&uv2=E1Q0Zk(>h!~o2ID@6{uf8s; a +M[5[U[QT7xFN%^gR"=tuJw%TXXR'Fp~W; (T"1(739R%m0Yyyv*gkGoPA.$b,D.w:z+<'"=-lVT?6 {T?=R^:W5g|E2#EhjKCa+nt":4b}dU7GYB*HBxn&Td$@f%.kl^:7X8rQWd[NTc"P"u6nkisze/Q; 8 "9Z{peQF,w)7UjV$c|RO/mQW/NMgWfr5*$-Z%u46"/00mx-,\R'fLPe.)^ User-Agent: slrn/pre1.0.0-18 (Linux) X-Pg-Spam-Score: -2.7 (--) X-Archive-Number: 201210/1 X-Sequence-Number: 36872 On 2012-09-23, Abhijit Prusty -X (abprusty - UST Global at Cisco) wrote: > --_000_8A2A33BFAA5E2F408D0BBB80844412720487D0xmbalnx03ciscocom_ > Content-Type: text/plain; charset="us-ascii" > Content-Transfer-Encoding: quoted-printable > > Hi, > > I have a query in oracle like this mentioned below > > Insert into TEST > (TEMPLATE_ID, TEMPLATE_NAME, CREATED_BY, CREATED_DT, UPDATED_BY, > UPDATED_DT, TEMPLATE_KEY) > Values > (1, UNISTR('\D3C9\BA85\B3C4 \B514\C2A4\D50C\B808\C774'), 'dmin', SYSDATE= > , 'admin', > SYSDATE ,'FLOOR'); > > Now the oracle uses the UNISTR function to convert and insert the Unicode to > string and store in database. oracle uNISTR-like UTF-16 can be written like this: U&'\D3C9\BA85\B3C4 \B514\C2A4\D50C\B808\C774' it's not a function, it a way of writing strings... if you need a it probably wouldn't be hard to write. but you can also write in UTF-8 (literal or escaped) or unicode escaped see docs: u&'\+021502' -- unicode u&'\D845\DD02' -- utf16 (docs tell methis is legal with recent versions) e'\xF0\xA1\x94\x82' -- utf8 hex escape e'\360\241\224\202' -- utf8 octal escape '𡔂' -- utf8 string literal the first 2 can be intermixed as can the last three forms. http://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html select length('𡔂'), octet_length( '𡔂' ), length('test'), octet_length('test'); length | octet_length | length | octet_length --------+--------------+--------+-------------- 1 | 4 | 4 | 4 -- ⚂⚃ 100% natural