We are on Oracle9i Enterprise Edition. I tried the following in PL/SQL. MANUFACTUERER Field is defined as VARCHAR2(75). I tried similar table with NVARCHAR2(75) instead, and same result.
INSERT INTO TLP.part_extensions_tab(MANUFACTURER, MANUFACTURER_ADDRESS_LINE )
SELECT 'Neal Chinese Test 06', '统一通信系统)【功能性备注:集团电话' FROM DUAL;
commit;
select MANUFACTURER, MANUFACTURER_ADDRESS_LINE from TLP.part_extensions_tab
where MANUFACTURER like 'Neal Chinese Test 06' ;
The SQL runs, but returns the following question marks; so I'm not sure the insert worked, or if I have a problem displaying the text back in Chinese.
My other Googling lead me down this path (not sure if it is a dead end or not):
DECLARE
MyLanguage nvarchar2(30);
BEGIN
--EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_LANGUAGE = ''SPANISH''';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_LANGUAGE = ''SIMPLIFIED CHINESE_CHINA.ZHS16GBK''';
select Value into MyLanguage from nls_database_parameters where Parameter = 'NLS_LANGUAGE';
DBMS_OUTPUT.put_line('MyLanguage=' || MyLanguage);
--DBMS_OUTPUT.put_line('NLS_LANG=' || NLS_LANG);
END;
--SELECT USERENV ('language') FROM DUAL;
But this gives me "ORA-12705; invalid or unknown NLS parameter value specified. I don't know if that language needs to be installed on my client, my server, or my syntax is just wrong. When I tried Spanish, the SQL ran without error, and it shows Spanish.American in the result. emphasized text
select * from nls_database_parameters where parameter like '%CHARACTERSET';