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à "?"