N'κόσμε'
là (nhiều hơn hoặc ít hơn) tương đương với CAST('κόσμε' AS NVARCHAR2(..))
Với N'κόσμε'
bạn nói "coi chuỗi là NVARCHAR". Nếu bạn chỉ viết 'κόσμε'
thì chuỗi được coi là VARCHAR
. Tuy nhiên, NLS_CHARACTERSET
của bạn là WE8ISO8859P15
không hỗ trợ các ký tự Hy Lạp. Do đó, bạn nhận được ?
dưới dạng trình giữ chỗ.
Bạn đã không cho chúng tôi biết NLS_NCHARACTERSET
của bạn , rất có thể điều này hỗ trợ Unicode.
btw, bạn không cần phải select ... from dual
, chỉ cần viết như
l_ec := ASCIISTR('κόσμε');
trong PL / SQL.
địa phương của bạn là gì NLS_LANG
giá trị, tức là ở phía khách hàng của bạn? Nhiều khả năng nó không khớp với mã hóa ký tự của SQL * Plus của bạn. Xem câu trả lời này để biết thêm chi tiết: OdbcConnection trả lại các ký tự Trung Quốc là "?"