This discussion is archived
1 Reply Latest reply: Aug 28, 2012 9:02 AM by 956366 RSS

sqlplus linesize behaviour for special characters

956366 Newbie
Currently Being Moderated
Sqlplus seems to treat special characters differently when cutting off lines in different sqlplus clients. I would like to understand why this happens.

A character with ascii value 14844051 (I think this is a hyphen) selected in sqlplus started in Unix seems to counts as two characters, whereas in sqlplus started on my local machine (which I will call cmd) it is treated as one character.

For example, when I display the string '12-45' (I shall use a normal dash in this example but the character in the middle represents the character with ascii value 14844051) with different linesizes, I get the following results in unix/cmd:

As a general note: in cmd the character (retrieved from the database) is displayed as 'â' but in unix it is displayed as a hyphen. However, I am not concerned about which character is printed, only how many positions it takes up and where the line breaks.

linesize 6 :
* in cmd: '12â45'
* in unix: '12-45'

linesize 5 - not OK:
* in cmd, the full string is on one line '12â45'
* in unix:
the characters '12-4' are displayed on one line and '5' is on the next

linesize 2: - not OK:
* in cmd, the result is OK:
line 1: '12'
line 2: 'â4'
line 3: '5'
* in unix, the result is not OK:
line 1: '12'
line 2: ''-'
line 3: '45'

In both instances the following NLS_PARAMETERS are set:
* NLS_NCHAR_CHARACTERSET: AL16UTF16
* NLS_CHARACTERSET: UTF8

This is on an Oracle database 10.2.0.4.0, sqlplus version unix: 8.0.6.0.0/ local machine: 10.2.0.1.0

Does anybody know what causes this and how to control it? I can replace the special character but I am more interested in why this happens.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points