oracle Direct modes Chinese update Problem
Posted: Wed 07 Dec 2011 01:22
Oracle database:
SELECT USERENV ('language') from dual;
AMERICAN_AMERICA.US7ASCII
SELECT * FROM V$NLS_PARAMETERS;
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CURRENCY $
4 NLS_ISO_CURRENCY AMERICA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE AMERICAN
9 NLS_CHARACTERSET US7ASCII
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY $
16 NLS_NCHAR_CHARACTERSET AL16UTF16
17 NLS_COMP BINARY
18 NLS_LENGTH_SEMANTICS BYTE
19 NLS_NCHAR_CONV_EXCP FALSE
Table:tb_head
STA VARCHAR2(10)
Client computer:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
"ORACLE_HOME"="C:\Ora10InstantClient"
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ORACLE_HOME"="C:\Ora10InstantClient"
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
the delph code is:
begin
uniQuery1.sql.text:='Select sta from tb_head';
uniQuery1.Open;
uniQuery1.Edit;
uniQuery1.FieldByName(ImTbH_sta).Value:='已开票';
uniQuery1.Post;
end;
in oci mode:
sta='已开票';
in direct mode:
sta='???';
SELECT USERENV ('language') from dual;
AMERICAN_AMERICA.US7ASCII
SELECT * FROM V$NLS_PARAMETERS;
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CURRENCY $
4 NLS_ISO_CURRENCY AMERICA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CALENDAR GREGORIAN
7 NLS_DATE_FORMAT DD-MON-RR
8 NLS_DATE_LANGUAGE AMERICAN
9 NLS_CHARACTERSET US7ASCII
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY $
16 NLS_NCHAR_CHARACTERSET AL16UTF16
17 NLS_COMP BINARY
18 NLS_LENGTH_SEMANTICS BYTE
19 NLS_NCHAR_CONV_EXCP FALSE
Table:tb_head
STA VARCHAR2(10)
Client computer:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
"ORACLE_HOME"="C:\Ora10InstantClient"
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ORACLE_HOME"="C:\Ora10InstantClient"
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
the delph code is:
begin
uniQuery1.sql.text:='Select sta from tb_head';
uniQuery1.Open;
uniQuery1.Edit;
uniQuery1.FieldByName(ImTbH_sta).Value:='已开票';
uniQuery1.Post;
end;
in oci mode:
sta='已开票';
in direct mode:
sta='???';