Re: Printing extended ascii

  • From: De DBA <dedba@xxxxxxxxxx>
  • To: Oracle Discussion List <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 26 Mar 2010 12:15:53 +1000

<trimmed due to overquoting..>

Gabriel,

NLS is a quagmire of code pages and proprietary encoding pages. Unicode tries to unify all that and give us a reliable way out. Unfortunately it introduces some confusion all its own, by moving characters around and allowing named subsets...

The ASCII art characters that you try to produce existed in DOS code pages, but the don't exist in Extended ASCII, which is standardised as ISO 8859-1 (see http://en.wikipedia.org/wiki/Extended_ASCII). You are using UTF-8 in your example, in which the first 256 characters correspond to ISO 8859-1 and don't contain the drawing symbols. In Unicode they can be found from 0x2500 upward (i.e. 9472 decimal).

E.g. (my test database has unicode only as the national character set, so I use nchr):

        $ export NLS_LANG=AMERICAN_AMERICA.UTF8
        $ sqlplus /
        ...
        SQL> select nchr(9484)||nchr(9472)||nchr(9488) from dual;
        
        NCHR(9484
        =========
        ┌─┐


The complete set is shown on http://en.wikipedia.org/wiki/Box_drawing_characters (note that the unicode values are in hex).

Hope this helps,

Cheers,
Tony

On 26/03/10 2:02 AM, Aragon, Gabriel (GE, Corporate, consultant) wrote:
No luck, I just cant get desired character, am I doing something wrong?

sql>select parameter, value from v$nls_parameters where parameter 
in('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET') ;

PARAMETER          VALUE
------------------ -------------------------------------------------------
NLS_LANGUAGE       AMERICAN
NLS_TERRITORY      AMERICA
NLS_CHARACTERSET   UTF8

$ NLS_LANG=AMERICAN_AMERICA.UTF8; export NLS_LANG

$ echo $NLS_LANG
AMERICAN_AMERICA.UTF8

sql>  declare
     x char(5);
     begin
     for i in 124..219
     loop
     select chr(i) into x from dual;
     dbms_output.put_line(i||'-'||x);
     end loop;
     end;
     /

   2    3    4    5    6    7    8    9   10
124-|
--
//www.freelists.org/webpage/oracle-l


Other related posts: