hi,
when i user ado.net to connect to db2 database,if i get chinese char column,
if the char is messy code,then ,throws out :
Transliteration data, improperly formatted for this encoding: IBM-1388_P110-2000.
ps:i get the charmap IBM-1388_P110-2000 in my application dir.
who can help me ?
help,help!
1. Which version of Connect for ADO.NET provider are you using.
2. Application that you are using to connect to DB2 Server.
hi,
when i user ado.net to connect to db2 database,if i get chinese char column,
if the char is messy code,then ,throws out :
Transliteration data, improperly formatted for this encoding: IBM-1388_P110-2000.
ps:i get the charmap IBM-1388_P110-2000 in my application dir.
who can help me ?
help,help!
Flag this post as spam/abuse.
thanks for your reply~
1. ADO.net Version:4.1.0 win
2.I just make a test Application using connect string :Host=XXX;Port=XXX;User ID=XXX;Password=XXX;Database=XXX;CharsetFor65535=0;
and then execute a sql like "select * from table"
i have Downloaded ibm-1388_P110-2000.ucm as plain text,and Copy ucm converter file to the working directory of SSIS (usually same directory as SSIS packages).
but,if a column contains messy code,the sql will throw the exception!
Transliteration data, improperly formatted for this encoding: IBM-1388_P110-2000.
1. Can you please let us the know the Type and Version of your DB2 instance? E.g. LUW 10.5 etc.
2. Also, if you can share the exact DDL (Create table query) and DML (the Insert query which is inserting Chinese characters in that columns).
thanks for your reply~
1. ADO.net Version:4.1.0 win
2.I just make a test Application using connect string :Host=XXX;Port=XXX;User ID=XXX;Password=XXX;Database=XXX;CharsetFor65535=0;
and then execute a sql like "select * from table"
i have Downloaded ibm-1388_P110-2000.ucm as plain text,and Copy ucm converter file to the working directory of SSIS (usually same directory as SSIS packages).
but,if a column contains messy code,the sql will throw the exception!
Transliteration data, improperly formatted for this encoding: IBM-1388_P110-2000.
- See more at: community.progress.com/.../68239.aspx
Flag this post as spam/abuse.
thanks your reply!
1.Version of DB2 : z/os V10
2.i think the question is the value of this columns,I use hex() function to get the Chinese characters column value
like this:
0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040
maybe before you use charmap to map the value,you check the format of this value?
1. We will need the exact CREATE TABLE query to know exactly which CCSID is used to create the specified column.
2. You can also generate ADO.NET Trace file by using following Connection option in your Connection String
“Enable Trace=1;Trace File=C:\TraceFile.txt”
3. Please send us the CREATE TABLE Query which exact CCSID number for that column and Trace File generated by your select query after adding the connection options.
4. If your specific column is not configured to have specific CCSID, it may be possible that it is defined for whole table or entire instance.
Please let us know this information.
thanks your reply!
1.Version of DB2 : z/os V10
2.i think the question is the value of this columns,I use hex() function to get the Chinese characters column value
like this:
0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040
maybe before you use charmap to map the value,you check the format of this value?
Flag this post as spam/abuse.
Hi, Thanks for the reply.
1.CCSID is EBCDIC
2.Trace File:(just a connection and a query which throws the exception)
Assembly Name: DDTek.DB2, Version=4.1.0.0, Culture=neutral, PublicKeyToken=c84cd5c63851e072
Assembly File Version: 4.1.0.010202
00000001 08:44:54.857 T1 I26966483 Connection::Open ENTER
ConnectionString: Host=10.232.19.209;Port=9500;User ID=MRE0222;Password=*****;Database=DJ50;CharsetFor65535=0;Enable trace=1;Trace File=E:\TraceFile.txt
ConnectionTimeout: 15
POOL: Found a pooled connection
POOL: Current status: 1 pools, 0 connections
00000002 08:44:54.953 T1 I61150033 Command::ExecuteReader ENTER
Arg #1: "CommandBehavior.Default"
CommandText: SELECT COUNT(*) FROM SYSIBM.SYSPACKSTMT WHERE NAME ='DDAC320A' and COLLID = 'NULLID' AND LOCATION = '' AND (SEQNO <> 0 OR STMTNO <> 0 OR SECTNO <> 0)
CommandType: Text
CommandTimeout: 15
UpdatedRowSource: Both
00000002 08:44:54.998 T1 I61150033 Command::ExecuteReader EXIT
Return: DDTek.DB2.DB2DataReader
RecordsAffected: -1
00000003 08:44:54.998 T1 I54234833 DataReader::Read ENTER
00000003 08:44:54.999 T1 I54234833 DataReader::Read EXIT
Out #1: "NumRowsRead = 1"
Return: True
00000004 08:44:54.999 T1 I54234833 DataReader::GetInt32 ENTER
Arg #1: 0
00000004 08:44:54.999 T1 I54234833 DataReader::GetInt32 EXIT
Return: 200
00000005 08:44:54.999 T1 I54234833 DataReader::Close ENTER
00000005 08:44:55.011 T1 I54234833 DataReader::Close EXIT
00000001 08:44:55.011 T1 I26966483 Connection::Open EXIT
00000006 08:44:55.011 T1 I9035653 Command::ExecuteReader ENTER
Arg #1: "CommandBehavior.SequentialAccess"
CommandText: select * from sysa.ar_ar_51 where COD_FN_ENT = '0103' and NUM_SEQ_AR = '02024351200000006' with ur;
CommandType: Text
CommandTimeout: 30
UpdatedRowSource: Both
Error Generated by DB2 Provider:
Message = SQL0098W: A dynamic SQL statement ends with a semicolon.
a: System.InvalidOperationException
Message: Transliteration table not found: IBM-1388_P110-2000
Source:
Stack Trace
在 DDInt.Common.a1.a(Exception , a )
在 DDInt.Common.a1.c(Exception )
在 DDTek.DB2.DB2Exception.a(String )
在 DDTek.DB2.DRDA.b.bw()
在 DDTek.DB2.DRDA.c.bw()
在 DDTek.DB2.DB2Command.a(CommandBehavior , Boolean )
在 DDTek.DB2.DB2Command.ExecuteReader(CommandBehavior behavior)
在 DDTek.DB2.DB2Command.ExecuteDbDataReader(CommandBehavior behavior)
在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 TestADOnet.Form1.button_connect_Click(Object sender, EventArgs e)
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.Run(Form mainForm)
在 TestADOnet.Program.Main()
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
00000006 08:44:55.078 T1 I9035653 Command::ExecuteReader EXIT
--***********************************************************************************************************
3.CREATE TABLE Query:
CREATE TABLESPACE TARAR50
IN DBOEAR1
USING STOGROUP SSMSBOED
PRIQTY 1440 SECQTY 144000
FREEPAGE 31 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
DSSIZE 32G
NUMPARTS 49
BUFFERPOOL BP30
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 255 ;
COMMIT;
CREATE TABLE SYSA.AR_AR_50
(COD_FN_ENT CHAR(4) FOR MIXED DATA NOT NULL,
NUM_SEQ_AR CHAR(17) FOR MIXED DATA NOT NULL,
COD_PRO_COD CHAR(2) FOR MIXED DATA NOT NULL,
COD_BRCH_OU CHAR(6) FOR MIXED DATA NOT NULL,
NAM_AR CHAR(150) FOR MIXED DATA NOT NULL,
COD_ISO_CCY CHAR(3) FOR MIXED DATA NOT NULL,
IND_CSH_RMT CHAR(1) FOR MIXED DATA NOT NULL,
COD_PD_LINE CHAR(2) FOR MIXED DATA NOT NULL,
ID_GRP_PD CHAR(2) FOR MIXED DATA NOT NULL,
ID_PD CHAR(4) FOR MIXED DATA NOT NULL,
NUM_TARF CHAR(6) FOR MIXED DATA NOT NULL,
COD_PD_CLS CHAR(8) FOR MIXED DATA NOT NULL,
COD_AR_CHAR CHAR(2) FOR MIXED DATA NOT NULL,
COD_AR_ACTG_CLS CHAR(5) FOR MIXED DATA NOT NULL,
COD_BUS_BREED CHAR(8) FOR MIXED DATA NOT NULL,
COD_AR_SRCE CHAR(1) FOR MIXED DATA NOT NULL,
COD_AR_PAY_CTRL CHAR(3) FOR MIXED DATA NOT NULL,
TXT_PWD CHAR(8) FOR MIXED DATA NOT NULL,
COD_UNVS_DP_RGE CHAR(2) FOR MIXED DATA NOT NULL,
COD_UNVS_WTHD_RGE CHAR(2) FOR MIXED DATA NOT NULL,
IND_RES CHAR(1) FOR MIXED DATA NOT NULL,
COD_LCS_AR CHAR(2) FOR MIXED DATA NOT NULL,
COD_RSN_LCS_AR CHAR(4) FOR MIXED DATA NOT NULL,
DATE_STRT_LCS CHAR(8) FOR MIXED DATA NOT NULL,
DATE_REG_AR CHAR(8) FOR MIXED DATA NOT NULL,
DATE_REG_LCS CHAR(8) FOR MIXED DATA NOT NULL,
DATE_VLU_STRT CHAR(8) FOR MIXED DATA NOT NULL,
DATE_MATU CHAR(8) FOR MIXED DATA NOT NULL,
NUM_SEQ_SUBAR_CUR DECIMAL(10,0) NOT NULL,
COD_MSK_AR_1 CHAR(100) FOR MIXED DATA NOT NULL,
COD_MSK_AR_2 CHAR(100) FOR MIXED DATA NOT NULL,
COD_CHANL CHAR(4) FOR MIXED DATA NOT NULL,
CNT_AR_SP SMALLINT NOT NULL,
VLU_AR_SP CHAR(240) FOR MIXED DATA NOT NULL,
ID_INTL_IP CHAR(16) FOR MIXED DATA NOT NULL,
COD_IP_CLS CHAR(8) FOR MIXED DATA NOT NULL,
ID_MAGR_CUST CHAR(16) FOR MIXED DATA NOT NULL,
ID_MAGR_PD CHAR(16) FOR MIXED DATA NOT NULL,
NUM_ENCR_ARIT SMALLINT NOT NULL,
TXT_REM_1 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_2 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_3 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_4 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_5 CHAR(50) FOR MIXED DATA NOT NULL,
CONSTRAINT PK_AR_AR_50
PRIMARY KEY (COD_FN_ENT,
NUM_SEQ_AR))
IN DBOEAR1.TARAR50
PARTITION BY (COD_FN_ENT ASC,
NUM_SEQ_AR ASC)
(PART 1 VALUES('0103','01999999999999999'),
PART 2 VALUES('0103','02999999999999999'),
PART 3 VALUES('0103','03999999999999999'),
PART 4 VALUES('0103','04999999999999999'),
PART 5 VALUES('0103','05999999999999999'),
PART 6 VALUES('0103','06999999999999999'),
PART 7 VALUES('0103','07999999999999999'),
PART 8 VALUES('0103','08999999999999999'),
PART 9 VALUES('0103','09999999999999999'),
PART 10 VALUES('0103','10999999999999999'),
PART 11 VALUES('0103','11999999999999999'),
PART 12 VALUES('0103','12999999999999999'),
PART 13 VALUES('0103','13999999999999999'),
PART 14 VALUES('0103','14999999999999999'),
PART 15 VALUES('0103','15999999999999999'),
PART 16 VALUES('0103','16999999999999999'),
PART 17 VALUES('0103','17999999999999999'),
PART 18 VALUES('0103','18999999999999999'),
PART 19 VALUES('0103','19999999999999999'),
PART 20 VALUES('0103','20999999999999999'),
PART 21 VALUES('0103','21999999999999999'),
PART 22 VALUES('0103','22999999999999999'),
PART 23 VALUES('0103','23999999999999999'),
PART 24 VALUES('0103','24999999999999999'),
PART 25 VALUES('0103','25999999999999999'),
PART 26 VALUES('0103','26999999999999999'),
PART 27 VALUES('0103','27999999999999999'),
PART 28 VALUES('0103','28999999999999999'),
PART 29 VALUES('0103','29999999999999999'),
PART 30 VALUES('0103','30999999999999999'),
PART 31 VALUES('0103','31999999999999999'),
PART 32 VALUES('0103','32999999999999999'),
PART 33 VALUES('0103','33999999999999999'),
PART 34 VALUES('0103','34999999999999999'),
PART 35 VALUES('0103','38999999999999999'),
PART 36 VALUES('0103','39999999999999999'),
PART 37 VALUES('0103','40999999999999999'),
PART 38 VALUES('0103','41999999999999999'),
PART 39 VALUES('0103','44999999999999999'),
PART 40 VALUES('0103','45999999999999999'),
PART 41 VALUES('0103','50999999999999999'),
PART 42 VALUES('0103','71999999999999999'),
PART 43 VALUES('0103','80999999999999999'),
PART 44 VALUES('0103','81999999999999999'),
PART 45 VALUES('0103','82999999999999999'),
PART 46 VALUES('0103','83999999999999999'),
PART 47 VALUES('0103','84999999999999999'),
PART 48 VALUES('0103','97999999999999999'),
PART 49 VALUES('0103','99999999999999999'))
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO;
COMMIT;
CREATE UNIQUE INDEX SYSA.XARAR50P
ON SYSA.AR_AR_50
(COD_FN_ENT ASC,
NUM_SEQ_AR ASC )
PARTITIONED
USING STOGROUP SSMSBOED
PRIQTY 720 SECQTY 72000
FREEPAGE 7 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
COMPRESS NO
(PART 1,
PART 2,
PART 3,
PART 4,
PART 5,
PART 6,
PART 7,
PART 8,
PART 9,
PART 10,
PART 11,
PART 12,
PART 13,
PART 14,
PART 15,
PART 16,
PART 17,
PART 18,
PART 19,
PART 20,
PART 21,
PART 22,
PART 23,
PART 24,
PART 25,
PART 26,
PART 27,
PART 28,
PART 29,
PART 30,
PART 31,
PART 32,
PART 33,
PART 34,
PART 35,
PART 36,
PART 37,
PART 38,
PART 39,
PART 40,
PART 41,
PART 42,
PART 43,
PART 44,
PART 45,
PART 46,
PART 47,
PART 48,
PART 49)
BUFFERPOOL BP31
CLOSE YES
COPY NO
DEFER NO
DEFINE YES ;
COMMIT;
CREATE INDEX SYSA.XARAR50A
ON SYSA.AR_AR_50
(COD_FN_ENT ASC,
COD_BRCH_OU ASC,
NUM_SEQ_AR ASC)
USING STOGROUP SSMSBOED
PRIQTY 720 SECQTY 72000
ERASE NO
FREEPAGE 7 PCTFREE 5
GBPCACHE CHANGED
NOT CLUSTER
COMPRESS NO
BUFFERPOOL BP31
CLOSE YES
COPY NO
DEFER NO
DEFINE YES
PIECESIZE 16G ;
COMMIT;
--***********************************************************************************************************
most of time,the ADO.net works well,
if the value of column NAM_AR like this (hex)
0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040
then the query throw the exception :
Transliteration table not found: IBM-1388_P110-2000
and~
you can use the sql to add a record for testing:
INSERT INTO sysa.ar_ar_50 VALUES('0103','08888888888888881','02','020100',X'0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040','CNY','0','01','08','0001','108010','D1911','99','','01000002','1','101','','03','03','','07','0001','20110328','20100322','20110328','20100322','20110322',0,'0000000000000000100000100000000000000000000000000000000000000000000000000000000000000000000000000000','0000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000','TERM',6,'D1320100322201103281D1720100322201103281D2120100322201103281D2220100322201103281D2420100322201103281D2620100322201103281','6612500005184938','','','',0,'','','','','');
and~
you can use the sql to add a record for testing:
INSERT INTO sysa.ar_ar_50 VALUES('0103','08888888888888881','02','020100',X'0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040','CNY','0','01','08','0001','108010','D1911','99','','01000002','1','101','','03','03','','07','0001','20110328','20100322','20110328','20100322','20110322',0,'0000000000000000100000100000000000000000000000000000000000000000000000000000000000000000000000000000','0000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000','TERM',6,'D1320100322201103281D1720100322201103281D2120100322201103281D2220100322201103281D2420100322201103281D2620100322201103281','6612500005184938','','','',0,'','','','','');
Flag this post as spam/abuse.
thanks for your reply!
sorry,I made a mistake,the TraceFile is wrong ,and you can see this instead.
1.create a table using sql like that:
CREATE TABLESPACE TARAR51
IN DBOEAR1
USING STOGROUP SSMSBOED
PRIQTY 1440 SECQTY 144000
FREEPAGE 31 PCTFREE 5
GBPCACHE CHANGED
TRACKMOD YES
LOGGED
DSSIZE 32G
NUMPARTS 49
BUFFERPOOL BP30
LOCKSIZE ANY
LOCKMAX SYSTEM
CLOSE YES
COMPRESS NO
CCSID EBCDIC
DEFINE YES
MAXROWS 255 ;
COMMIT;
CREATE TABLE SYSA.AR_AR_51
(COD_FN_ENT CHAR(4) FOR MIXED DATA NOT NULL,
NUM_SEQ_AR CHAR(17) FOR MIXED DATA NOT NULL,
COD_PRO_COD CHAR(2) FOR MIXED DATA NOT NULL,
COD_BRCH_OU CHAR(6) FOR MIXED DATA NOT NULL,
NAM_AR CHAR(150) FOR MIXED DATA NOT NULL,
COD_ISO_CCY CHAR(3) FOR MIXED DATA NOT NULL,
IND_CSH_RMT CHAR(1) FOR MIXED DATA NOT NULL,
COD_PD_LINE CHAR(2) FOR MIXED DATA NOT NULL,
ID_GRP_PD CHAR(2) FOR MIXED DATA NOT NULL,
ID_PD CHAR(4) FOR MIXED DATA NOT NULL,
NUM_TARF CHAR(6) FOR MIXED DATA NOT NULL,
COD_PD_CLS CHAR(8) FOR MIXED DATA NOT NULL,
COD_AR_CHAR CHAR(2) FOR MIXED DATA NOT NULL,
COD_AR_ACTG_CLS CHAR(5) FOR MIXED DATA NOT NULL,
COD_BUS_BREED CHAR(8) FOR MIXED DATA NOT NULL,
COD_AR_SRCE CHAR(1) FOR MIXED DATA NOT NULL,
COD_AR_PAY_CTRL CHAR(3) FOR MIXED DATA NOT NULL,
TXT_PWD CHAR(8) FOR MIXED DATA NOT NULL,
COD_UNVS_DP_RGE CHAR(2) FOR MIXED DATA NOT NULL,
COD_UNVS_WTHD_RGE CHAR(2) FOR MIXED DATA NOT NULL,
IND_RES CHAR(1) FOR MIXED DATA NOT NULL,
COD_LCS_AR CHAR(2) FOR MIXED DATA NOT NULL,
COD_RSN_LCS_AR CHAR(4) FOR MIXED DATA NOT NULL,
DATE_STRT_LCS CHAR(8) FOR MIXED DATA NOT NULL,
DATE_REG_AR CHAR(8) FOR MIXED DATA NOT NULL,
DATE_REG_LCS CHAR(8) FOR MIXED DATA NOT NULL,
DATE_VLU_STRT CHAR(8) FOR MIXED DATA NOT NULL,
DATE_MATU CHAR(8) FOR MIXED DATA NOT NULL,
NUM_SEQ_SUBAR_CUR DECIMAL(10,0) NOT NULL,
COD_MSK_AR_1 CHAR(100) FOR MIXED DATA NOT NULL,
COD_MSK_AR_2 CHAR(100) FOR MIXED DATA NOT NULL,
COD_CHANL CHAR(4) FOR MIXED DATA NOT NULL,
CNT_AR_SP SMALLINT NOT NULL,
VLU_AR_SP CHAR(240) FOR MIXED DATA NOT NULL,
ID_INTL_IP CHAR(16) FOR MIXED DATA NOT NULL,
COD_IP_CLS CHAR(8) FOR MIXED DATA NOT NULL,
ID_MAGR_CUST CHAR(16) FOR MIXED DATA NOT NULL,
ID_MAGR_PD CHAR(16) FOR MIXED DATA NOT NULL,
NUM_ENCR_ARIT SMALLINT NOT NULL,
TXT_REM_1 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_2 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_3 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_4 CHAR(50) FOR MIXED DATA NOT NULL,
TXT_REM_5 CHAR(50) FOR MIXED DATA NOT NULL,
CONSTRAINT PK_AR_AR_51
PRIMARY KEY (COD_FN_ENT,
NUM_SEQ_AR))
IN DBOEAR1.TARAR51
PARTITION BY (COD_FN_ENT ASC,
NUM_SEQ_AR ASC)
(PART 1 VALUES('0103','01999999999999999'),
PART 2 VALUES('0103','02999999999999999'),
PART 3 VALUES('0103','03999999999999999'),
PART 4 VALUES('0103','04999999999999999'),
PART 5 VALUES('0103','05999999999999999'),
PART 6 VALUES('0103','06999999999999999'),
PART 7 VALUES('0103','07999999999999999'),
PART 8 VALUES('0103','08999999999999999'),
PART 9 VALUES('0103','09999999999999999'),
PART 10 VALUES('0103','10999999999999999'),
PART 11 VALUES('0103','11999999999999999'),
PART 12 VALUES('0103','12999999999999999'),
PART 13 VALUES('0103','13999999999999999'),
PART 14 VALUES('0103','14999999999999999'),
PART 15 VALUES('0103','15999999999999999'),
PART 16 VALUES('0103','16999999999999999'),
PART 17 VALUES('0103','17999999999999999'),
PART 18 VALUES('0103','18999999999999999'),
PART 19 VALUES('0103','19999999999999999'),
PART 20 VALUES('0103','20999999999999999'),
PART 21 VALUES('0103','21999999999999999'),
PART 22 VALUES('0103','22999999999999999'),
PART 23 VALUES('0103','23999999999999999'),
PART 24 VALUES('0103','24999999999999999'),
PART 25 VALUES('0103','25999999999999999'),
PART 26 VALUES('0103','26999999999999999'),
PART 27 VALUES('0103','27999999999999999'),
PART 28 VALUES('0103','28999999999999999'),
PART 29 VALUES('0103','29999999999999999'),
PART 30 VALUES('0103','30999999999999999'),
PART 31 VALUES('0103','31999999999999999'),
PART 32 VALUES('0103','32999999999999999'),
PART 33 VALUES('0103','33999999999999999'),
PART 34 VALUES('0103','34999999999999999'),
PART 35 VALUES('0103','38999999999999999'),
PART 36 VALUES('0103','39999999999999999'),
PART 37 VALUES('0103','40999999999999999'),
PART 38 VALUES('0103','41999999999999999'),
PART 39 VALUES('0103','44999999999999999'),
PART 40 VALUES('0103','45999999999999999'),
PART 41 VALUES('0103','50999999999999999'),
PART 42 VALUES('0103','71999999999999999'),
PART 43 VALUES('0103','80999999999999999'),
PART 44 VALUES('0103','81999999999999999'),
PART 45 VALUES('0103','82999999999999999'),
PART 46 VALUES('0103','83999999999999999'),
PART 47 VALUES('0103','84999999999999999'),
PART 48 VALUES('0103','97999999999999999'),
PART 49 VALUES('0103','99999999999999999'))
AUDIT NONE
DATA CAPTURE NONE
CCSID EBCDIC
NOT VOLATILE
APPEND NO;
COMMIT;
CREATE UNIQUE INDEX SYSA.XARAR51P
ON SYSA.AR_AR_51
(COD_FN_ENT ASC,
NUM_SEQ_AR ASC )
PARTITIONED
USING STOGROUP SSMSBOED
PRIQTY 720 SECQTY 72000
FREEPAGE 7 PCTFREE 5
GBPCACHE CHANGED
CLUSTER
COMPRESS NO
(PART 1,
PART 2,
PART 3,
PART 4,
PART 5,
PART 6,
PART 7,
PART 8,
PART 9,
PART 10,
PART 11,
PART 12,
PART 13,
PART 14,
PART 15,
PART 16,
PART 17,
PART 18,
PART 19,
PART 20,
PART 21,
PART 22,
PART 23,
PART 24,
PART 25,
PART 26,
PART 27,
PART 28,
PART 29,
PART 30,
PART 31,
PART 32,
PART 33,
PART 34,
PART 35,
PART 36,
PART 37,
PART 38,
PART 39,
PART 40,
PART 41,
PART 42,
PART 43,
PART 44,
PART 45,
PART 46,
PART 47,
PART 48,
PART 49)
BUFFERPOOL BP31
CLOSE YES
COPY NO
DEFER NO
DEFINE YES ;
COMMIT;
2.insert a row to the table.
INSERT INTO sysa.ar_ar_51 VALUES('0103','08888888888888885','02','020100',X'0E56F94F964CD46C894B7C5D9956745A73625B4D65565F58B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B158B14040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040','CNY','0','01','08','0001','108010','D1911','99','','01000002','1','101','','03','03','','07','0001','20110328','20100322','20110328','20100322','20110322',0,'0000000000000000100000100000000000000000000000000000000000000000000000000000000000000000000000000000','0000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000','TERM',6,'D1320100322201103281D1720100322201103281D2120100322201103281D2220100322201103281D2420100322201103281D2620100322201103281','6612500005184938','','','',0,'','','','','');
select * FROM sysa.ar_ar_51 where cod_fn_ent = '0103' and num_seq_ar ='08888888888888885' with ur;
3.connect to the db2 by C# code
string sql_str = "Host=10.232.19.209;Port=9500;User ID=MRE0222;Password=***;Database=DJ50;CharsetFor65535=0;Enable trace=1;Trace File=E:\\TraceFile.txt";
DB2Connection connectionobj = new DB2Connection(sql_str);
connectionobj.Open();
DB2DataAdapter sa = null;
try
{
DataSet ds = new DataSet();
string sql = @"select * from sysa.ar_ar_51 where COD_FN_ENT = '0103' and NUM_SEQ_AR = '08888888888888885' with ur;";
sa = new DB2DataAdapter(sql, connectionobj);
sa.Fill(ds);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
4.the TraceFile likes that:
Assembly Name: DDTek.DB2, Version=4.1.0.0, Culture=neutral, PublicKeyToken=c84cd5c63851e072
Assembly File Version: 4.1.0.010202
00000001 08:16:55.493 T1 I22597652 Connection::Open ENTER
ConnectionString: Host=10.232.19.209;Port=9500;User ID=MRE0222;Password=*****;Database=DJ50;CharsetFor65535=0;Enable trace=1;Trace File=E:\TraceFile.txt
ConnectionTimeout: 15
POOL: Found a pooled connection
POOL: Current status: 1 pools, 0 connections
00000002 08:16:55.564 T1 I17043416 Command::ExecuteReader ENTER
Arg #1: "CommandBehavior.Default"
CommandText: SELECT COUNT(*) FROM SYSIBM.SYSPACKSTMT WHERE NAME ='DDAC320A' and COLLID = 'NULLID' AND LOCATION = '' AND (SEQNO <> 0 OR STMTNO <> 0 OR SECTNO <> 0)
CommandType: Text
CommandTimeout: 15
UpdatedRowSource: Both
00000002 08:16:55.664 T1 I17043416 Command::ExecuteReader EXIT
Return: DDTek.DB2.DB2DataReader
RecordsAffected: -1
00000003 08:16:55.665 T1 I11653293 DataReader::Read ENTER
00000003 08:16:55.667 T1 I11653293 DataReader::Read EXIT
Out #1: "NumRowsRead = 1"
Return: True
00000004 08:16:55.667 T1 I11653293 DataReader::GetInt32 ENTER
Arg #1: 0
00000004 08:16:55.667 T1 I11653293 DataReader::GetInt32 EXIT
Return: 200
00000005 08:16:55.668 T1 I11653293 DataReader::Close ENTER
00000005 08:16:55.674 T1 I11653293 DataReader::Close EXIT
00000001 08:16:55.674 T1 I22597652 Connection::Open EXIT
00000006 08:16:55.675 T1 I54636159 Command::ExecuteReader ENTER
Arg #1: "CommandBehavior.SequentialAccess"
CommandText: select * from sysa.ar_ar_51 where COD_FN_ENT = '0103' and NUM_SEQ_AR = '08888888888888885' with ur;
CommandType: Text
CommandTimeout: 30
UpdatedRowSource: Both
Error Generated by DB2 Provider:
Message = SQL0098W: A dynamic SQL statement ends with a semicolon.
00000006 08:16:57.470 T1 I54636159 Command::ExecuteReader EXIT
Return: DDTek.DB2.DB2DataReader
RecordsAffected: -1
00000007 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 0
00000007 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_FN_ENT"
00000008 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 1
00000008 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "NUM_SEQ_AR"
00000009 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 2
00000009 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_PRO_COD"
00000010 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 3
00000010 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_BRCH_OU"
00000011 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 4
00000011 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "NAM_AR"
00000012 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 5
00000012 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_ISO_CCY"
00000013 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 6
00000013 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "IND_CSH_RMT"
00000014 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 7
00000014 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_PD_LINE"
00000015 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 8
00000015 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "ID_GRP_PD"
00000016 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 9
00000016 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "ID_PD"
00000017 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 10
00000017 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "NUM_TARF"
00000018 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 11
00000018 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_PD_CLS"
00000019 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 12
00000019 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_AR_CHAR"
00000020 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 13
00000020 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_AR_ACTG_CLS"
00000021 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 14
00000021 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_BUS_BREED"
00000022 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 15
00000022 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_AR_SRCE"
00000023 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 16
00000023 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_AR_PAY_CTRL"
00000024 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 17
00000024 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_PWD"
00000025 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 18
00000025 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_UNVS_DP_RGE"
00000026 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 19
00000026 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_UNVS_WTHD_RGE"
00000027 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 20
00000027 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "IND_RES"
00000028 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 21
00000028 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_LCS_AR"
00000029 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 22
00000029 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_RSN_LCS_AR"
00000030 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 23
00000030 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "DATE_STRT_LCS"
00000031 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 24
00000031 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "DATE_REG_AR"
00000032 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 25
00000032 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "DATE_REG_LCS"
00000033 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 26
00000033 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "DATE_VLU_STRT"
00000034 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 27
00000034 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "DATE_MATU"
00000035 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 28
00000035 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "NUM_SEQ_SUBAR_CUR"
00000036 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 29
00000036 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_MSK_AR_1"
00000037 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 30
00000037 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_MSK_AR_2"
00000038 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 31
00000038 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_CHANL"
00000039 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 32
00000039 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "CNT_AR_SP"
00000040 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 33
00000040 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "VLU_AR_SP"
00000041 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 34
00000041 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "ID_INTL_IP"
00000042 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 35
00000042 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "COD_IP_CLS"
00000043 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 36
00000043 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "ID_MAGR_CUST"
00000044 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 37
00000044 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "ID_MAGR_PD"
00000045 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 38
00000045 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "NUM_ENCR_ARIT"
00000046 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 39
00000046 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_REM_1"
00000047 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 40
00000047 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_REM_2"
00000048 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 41
00000048 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_REM_3"
00000049 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 42
00000049 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_REM_4"
00000050 08:16:57.471 T1 I42815147 DataReader::GetName ENTER
Arg #1: 43
00000050 08:16:57.471 T1 I42815147 DataReader::GetName EXIT
Return: "TXT_REM_5"
00000051 08:16:57.483 T1 I42815147 DataReader::Read ENTER
00000051 08:16:57.483 T1 I42815147 DataReader::Read EXIT
Out #1: "NumRowsRead = 1"
Return: True
00000052 08:16:57.483 T1 I42815147 DataReader::GetValues ENTER
Arg #1: "ArraySize = 44"
00000052 08:16:57.496 T1 I42815147 DataReader::GetValues EXIT
Out #1: "0103"
Out #2: "08888888888888885"
Out #3: "02"
Out #4: "020100"
Out #5: null
Out #6: null
Out #7: null
Out #8: null
Out #9: null
Out #10: null
Out #11: null
Out #12: null
Out #13: null
Out #14: null
Out #15: null
Out #16: null
Out #17: null
Out #18: null
Out #19: null
Out #20: null
Out #21: null
Out #22: null
Out #23: null
Out #24: null
Out #25: null
Out #26: null
Out #27: null
Out #28: null
Out #29: null
Out #30: null
Out #31: null
Out #32: null
Out #33: null
Out #34: null
Out #35: null
Out #36: null
Out #37: null
Out #38: null
Out #39: null
Out #40: null
Out #41: null
Out #42: null
Out #43: null
Out #44: null
Return: 44
00000053 08:16:57.496 T1 I42815147 DataReader::Close ENTER
00000053 08:16:57.682 T1 I42815147 DataReader::Close EXIT
------------------------------------------------------------
it seems like that:first ,it gets capiton of each column,then use reader to get each value of the row,
and the #5 value error!
why is it error?
exception:
Transliteration data, improperly formatted for this encoding: IBM-1388_P110-2000.
maybe,when you get each value from db2,you check the format?