tns数据流的的读取格式

编程入门 行业动态 更新时间:2024-10-25 19:24:26

tns<a href=https://www.elefans.com/category/jswz/34/1765906.html style=数据流的的读取格式"/>

tns数据流的的读取格式

前言

构造一个SQL查询语句,执行OCIStmtExecute后,会发出一个包,收到1个包。
发出的包,包含SQL语句 :select * …
收到的包:
结果集列信息描述(结果集列数量,列名称,列数据类型)

今天对回包进行了初步分析, 确定了tns流(列信息描述)数据每一步的读取数量。这样,这个流就不是杂乱无章,而是可以看出一些逻辑(即使不继续分析,只看数据的分隔)。

只有执行OCIStmtFetch后,才会返回结果集.
例外:
如果行结果较小,在这个列描述信息的下面,会带上第一个行结果,然后才是结果集的其他描述信息. OCIStmtFetch后,实际上是从缓存中拿的行结果,并没有向数据库发出请求行集的包。

实验数据-结果集列描述信息

0000   00 50 56 c0 00 08 00 0c 29 24 d3 86 08 00 45 00  .PV.....)$....E.
0010   03 be 07 d3 40 00 80 06 05 93 c0 a8 b4 81 c0 a8  ....@...........
0020   b4 01 05 f1 59 31 98 3f 1b 3b fb 8e f7 b7 50 18  ....Y1.?.;....P.
0030   01 00 d0 95 00 00 03 96 00 00 06 00 00 00 00 00  ................0040   10 // rd 1 bytes, Data ID: Describe Information (0x10)17 00 00 00  // rd 4 bytes27 e6 48 2c 16 04 06 b1  // rd 8 bytese1 1b a6  .....'.H,.......
0050   43 f9 df 70 b5  // rd 8 bytes78 76 01 07  // rd 4 bytes0b 27  // rd 2 bytes0f  // rd 1 bytes98 00 00 00  C..p.xv...'.....  // rd 4 bytes0060   03 00 00 00 // rd 4 bytes51 // rd 1 bytes01 // rd 1 bytes01 80 00 00 32 00 00 00 // rd 8 bytes00 00  ....Q.....2.....
0070   00 00 00 00 00 00 // rd 8 bytes00 00 00 00 00 00 00 00 // rd 8 bytes00 00  ................
0080   00 00 69 03 01 00 // rd 8 bytes32 00 00 00 00 00 00 00 // rd 8 bytes00 // rd 1 bytes05  ..i...2......... // rd 1 bytes
0090   05 00 00 00 // rd 4 bytes05 //  rd 1 bytes, 如果 == 0xfc, 说明数据长度 > 0xff54 4f 50 49 43 // rd 5 bytes00 00 00 00 // rd 4 bytes00 00  .....TOPIC......
00a0   00 00 // rd 4 bytes00 00 // rd 2 bytes00 00 00 00 // rd 4 bytes01 // rd 1 bytes02 00 00 81 16 00 00  ................
00b0   00 // rd 8 bytes00 00 00 00 00 00 00 00 // rd 8 bytes00 00 00 00 00 00 00  ................
00c0   00 // rd 8 bytes00 00 00 00 00 00 00 00 // rd 8 bytes00 00 00 00 00 00 00  ................
00d0   00 // rd 8 bytes00 // rd 1 bytes03 // rd 1 bytes03 00 00 00 // rd 4 bytes03 // rd 1 bytes53 45 51 // rd 3 bytes00 00 00 00 // rd 4 bytes00  ........SEQ.....
00e0   00 00 00 // rd 4 bytes01 00 // rd 2 bytes00 00 00 00 // rd 4 bytes01 // rd 1 bytes01 80 00 00 50 00  ..............P.
00f0   00 00 // rd 8 bytes00 00 00 00 00 00 00 00 // rd 8 bytes00 00 00 00 00 00  ................
0100   00 00 // rd 8 bytes00 00 00 00 69 03 01 00 // rd 8 bytes50 00 00 00 00 00  ......i...P.....
0110   00 00 // rd 8 bytes01 // rd 1 bytes04 // rd 1 bytes04 00 00 00 // rd 4 bytes04 // rd 1 bytes49 4e 46 4f // rd 4 bytes00 00 00  .........INFO...
0120   00 // rd 4 bytes00 00 00 00 // rd 4 bytes02 00 // rd 2 bytes00 00 00 00 // rd 4 bytes07 00 00 00 // rd 4 bytes07  ................ // rd 1 bytes
0130   78 76 01 07 0e 07 07 // rd 7 bytes01 00 00 00 // rd 4 bytese8 1f 00 00 // rd 4 bytes1a  xv..............
0140   00 00 00 // rd 4 bytes1a 00 00 00 // rd 4 bytes00 00 00 00 // rd 4 bytes06 // rd 1 bytes01 // rd 1 bytes1a 00 03  ................ // rd 48(8 * 6)bytes
0150   00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00  ................
0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0170   00 00 00 00 00 00 00 00 00 00 00 00 00 07 // rd 1 bytes0d // rd 1 bytes, this is a length(if >= 0xfc ...)2c  ..............., // rd 13(0x0d) bytes
0180   00 02 06 41 43 43 45 50 54 02 c1 0208 // rd 1 bytes06 00 // rd 2 bytes51  ...ACCEPT......Q // rd 24(8 * 3)bytes
0190   89 12 00 00 00 00 00 03 00 00 00 00 00 00 00 00  ................
01a0   00 00 00 00 00 00 00 00 00 // rd 2 bytes13 00 // rd 2 bytes00 00 00 00 // rd 4 bytes12  ................
01b0   00 00 00 // rd 4 bytes12 // rd length(if >= 0xfc ...)53 49 4d 50 4c 49 46 49 // rd 18 (0x12 = 8*2 + 2)bytes45 44 20 43  ....SIMPLIFIED C
01c0   48 49 4e 45 53 45 10 00 // rd 2 bytes00 00 00 00 // rd 4 bytes05 00 00 00  HINESE.......... // rd 4 bytes
01d0   05 // rd 1 bytes43 48 49 4e 41 // rd 5 bytes09 00 // rd 2 bytes00 00 00 00 // rd 4 bytes03 00 00 00  .CHINA.......... // rd 4 bytes
01e0   03 // rd 1 bytesef bf a5 // rd 3 bytes00 00 // rd 2 bytes00 00 00 00 // rd 4 bytes05 00 00 00 // rd 4 bytes05 // rd 1 bytes43  ...............C
01f0   48 49 4e 41 // rd 5 bytes01 00 // rd 2 bytes00 00 00 00 // rd 4 bytes02 00 00 00 // rd 4 bytes02 // rd 1 bytes2e  HINA............ // rd 2 bytes
0200   2c 02 00 // rd 2 bytes00 00 00 00 // rd 4 bytes08 00 00 00 // rd 4 bytes08 // rd 1 bytes41 4c 33 32  ,...........AL32 // rd 8 bytes
0210   55 54 46 38 0a 00 // rd 2 bytes00 00 00 00 // rd 4 bytes09 00 00 00 // rd 4 bytes09 // rd 1 bytes47  UTF8...........G // rd 9 bytes
0220   52 45 47 4f 52 49 41 4e 0c 00 // rd 2 bytes00 00 00 00 // rd 4 bytes09 00  REGORIAN........ // rd 4 bytes
0230   00 00 09 // rd 1 bytes44 44 2d 4d 4f 4e 2d 52 52 // rd 9 bytes07 00 // rd 2 bytes00 00  ...DD-MON-RR.... // rd 4 bytes
0240   00 00 12 00 00 00 // rd 4 bytes12 // rd 1 bytes53 49 4d 50 4c 49 46 49 // rd 18(0x12 = 8 * 2 + 2) bytes45  .......SIMPLIFIE 
0250   44 20 43 48 49 4e 45 53 4508 00 // rd 2 bytes00 00 00 00 // rd 4 bytes06  D CHINESE....... // rd 4 bytes
0260   00 00 00 06 // rd 1 bytes42 49 4e 41 52 59 // rd 6 bytes0b 00 // rd 2 bytes00 00 00 00  ....BINARY...... // rd 4 bytes
0270   0e 00 00 00 // rd 4 bytes0e // rd 1 bytes48 48 2e 4d 49 2e 53 53 58 46 46  .....HH.MI.SSXFF // rd 14 (0x0e = 8 + 4 + 2) bytes
0280   20 41 4d 39 00 // rd 2 bytes00 00 00 00 // rd 4 bytes18 00 00 00 // rd 4 bytes18 // rd 1 bytes44 44   AM9..........DD // rd 24(0x18 = 8 * 3) bytes
0290   2d 4d 4f 4e 2d 52 52 20 48 48 2e 4d 49 2e 53 53  -MON-RR HH.MI.SS
02a0   58 46 46 20 41 4d 3a 00 // rd 2 bytes00 00 00 00 // rd 4 bytes12 00 00 00  XFF AM:......... // rd 4 bytes
02b0   12 // rd 1 bytes48 48 2e 4d 49 2e 53 53 58 46 46 20 41 4d 20  .HH.MI.SSXFF AM // rd 18(0x12 = 8 * 2 + 2) bytes02c0   54 5a 52 3b 00 // rd 2 bytes00 00 00 00 // rd 4 bytes1c 00 00 00 // rd 4 bytes1c // rd 1 bytes44 44  TZR;..........DD // rd 28(0x1c = 8 * 3 + 4) bytes
02d0   2d 4d 4f 4e 2d 52 52 20 48 48 2e 4d 49 2e 53 53  -MON-RR HH.MI.SS
02e0   58 46 46 20 41 4d 20 54 5a 52 3c 00 // rd 2 bytes00 00 00 00  XFF AM TZR<..... // rd 4 bytes
02f0   03 00 00 00 // rd 4 bytes03 // rd 1 bytesef bf a5 // rd 3 bytes34 00 // rd 2 bytes00 00 00 00 // rd 4 bytes06 00  ........4....... // rd 4 bytes
0300   00 00 06 // rd 1 bytes42 49 4e 41 52 59 // rd 6 bytes32 00 // rd 2 bytes00 00 00 00 // rd 4 bytes04  ...BINARY2...... // rd 4 bytes
0310   00 00 00 04 // rd 1 bytes42 59 54 45 // rd 4 bytes3d 00 // rd 2 bytes00 00 00 00 // rd 4 bytes05 00  ....BYTE=....... // rd 4 bytes
0320   00 00 05 // rd 1 bytes46 41 4c 53 45 // rd 5 bytes3e 00 // rd 2 bytes00 00 00 00 // rd 4 bytes0b 00  ...FALSE>....... // rd 4 bytes
0330   00 00 0b // rd 1 bytes80 00 00 00 44 3c 3c 80 00 00 00 // rd 11(0x0b = 8 + 2 + 1) bytesa3 00  .......D<<...... // rd 2 bytes
0340   00 00 00 00 // rd 4 bytes04 // rd 1 bytes01 00 00 00 // rd 4 bytes04 00 // rd 2 bytes01 // rd 1 bytes01 00 00 00  ................ // rd (8 * 16) bytes
0350   00 00 00 00 00 00 03 00 00 00 03 00 20 00 00 00  ............ ...
0360   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0370   00 00 00 00 00 05 00 00 01 00 00 00 36 01 00 00  ............6...
0380   00 00 00 00 00 00 00 00 00 00 00 00 80 12 5d 19  ..............].
0390   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03a0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03c0   00 00 00 00 00 00 00 00 00 00 00 00              ............

实验数据-结果集列描述信息-整理1

又跟了一次,可能整理的更容易理解一些。

0000   00 50 56 c0 00 08 00 0c 29 91 36 b6 08 00 45 00  .PV.....).6...E.
0010   03 da 07 17 40 00 80 06 3a 32 c0 a8 9a 82 c0 a8  ....@...:2......
0020   9a 01 05 f1 7f 53 0a 1a ed 3b 04 43 92 4c 50 18  .....S...;.C.LP.
0030   01 00 17 67 00 00 03 b2 00 00 06 00 00 00 00 00  ...g............// 0000000008FACCC0  10 17 00 00 00 27 E6 48  2C 16 04 06 B1 E1 1B A6  .....'鍴 ,...贬 ..
// 长度9360040   10 // rd 117 00 00 00 // rd 4// rd 23 (0x17 = 8 + 8 + 4 + 2 + 1)27 e6 48 2c 16 04 06 b1 e1 1b a6  .....'.H,.......
0050   43 f9 df 70 b5 78 76 01 08 0f 29 10 98 00 00 00  C..p.xv...)..... // rd 40060   03 00 00 00 // rd 451 // rd 101 // rd 101 80 00 00 32 00 00 00 // rd 800 00  ....Q.....2.....
0070   00 00 00 00 00 00 // rd 800 00 00 00 00 00 00 00 // rd 800 00  ................
0080   00 00 54 03 01 00 // rd 832 00 00 00 00 00 00 00 // rd 800 // rd 105  ..T...2......... // rd 10090   05 00 00 00 // rd 405 // rd 1 (if > 0xfc)54 4f 50 49 43 // rd 500 00 00 00 // rd 400 00  .....TOPIC......
00a0   00 00 // rd 400 00 // rd 200 00 00 00 // rd 401 // rd 102 00 00 81 16 00 00  ................
00b0   00 // rd 800 00 00 00 00 00 00 00 // rd 800 00 00 00 00 00 00  ................
00c0   00 // rd 800 00 00 00 00 00 00 00 // rd 800 00 00 00 00 00 00  ................
00d0   00 // rd 800 // rd 103 // rd 103 00 00 00 // rd 403 // rd 153 45 51 // rd 300 00 00 00 // rd 400  ........SEQ.....
00e0   00 00 00 // rd 401 00 // rd 200 00 00 00 // rd 401 // rd 101 80 00 00 50 00  ..............P.
00f0   00 00 // rd 800 00 00 00 00 00 00 00 // rd 800 00 00 00 00 00  ................
0100   00 00 // rd 800 00 00 00 54 03 01 00 // rd 850 00 00 00 00 00  ......T...P.....
0110   00 00 01 // rd 104 // rd 104 00 00 00 // rd 404 // rd 149 4e 46 4f // rd 400 00 00  .........INFO...
0120   00 // rd 400 00 00 00 // rd 402 00 // rd 200 00 00 00 // rd 407 00 00 00 // rd 407  ................ // rd 1
0130   78 76 01 08 0f 2b 16 // rd 701 00 00 00 // rd 4e8 1f 00 00 // rd 41a  xv...+..........
0140   00 00 00 // rd 41a 00 00 00 // rd 400 00 00 00 // rd 406 // rd 101 // rd 1// rd 481a 00 03  ................
0150   00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00  ................
0160   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0170   00 00 00 00 00 00 00 00 00 00 00 00 00 07 // rd 12b // rd 1(length)// rd 43(0x2b = 8 * 5 + 2 + 1)0c  ..............+.
0180   01 03 00 40 7c 91 00 22 06 41 43 43 45 50 54 02  ...@|..".ACCEPT.
0190   c1 02 17 69 6e 66 6f 3a 73 65 71 3d 31 2c 74 6f  ...info:seq=1,to
01a0   70 69 63 3d 41 43 43 45 5054 08 // rd 106 00 // rd 2// rd 24(0x18)38 f5 11  pic=ACCEPT...8..
01b0   00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00  ................
01c0   00 00 00 00 00 00 00 // rd 213 00 // rd 200 00 00 00 // rd 412 00 00  ................
01d0   00 // rd 412 // rd 1// rd 18(0x12)53 49 4d 50 4c 49 46 49 45 44 20 43 48 49  ..SIMPLIFIED CHI
01e0   4e 45 53 45 10 00 // rd 200 00 00 00 // rd 405 00 00 00 // rd 405 // rd 143  NESE...........C
01f0   48 49 4e 41 // rd 509 00 // rd 200 00 00 00 // rd 402 00 00 00 // rd 402 // rd 1a3  HINA............
0200   a4 // rd 200 00 // rd 200 00 00 00 // rd 405 00 00 00 // rd 405 // rd 143 48 49 4e  ............CHIN
0210   41 // rd 501 00 // rd 200 00 00 00 // rd 402 00 00 00 // rd 402 // rd 12e 2c // rd 202 00  A............,.. // rd 2
0220   00 00 00 00 // rd 408 00 00 00 // rd 408 // rd 15a 48 53 31 36 47 42  .........ZHS16GB
0230   4b // rd 80a 00 // rd 200 00 00 00 // rd 409 00 00 00 // rd 409 // rd 147 52 45 47  K...........GREG
0240   4f 52 49 41 4e // rd 90c 00 // rd 200 00 00 00 // rd 409 00 00 00 // rd 409  ORIAN........... // rd 1
0250   44 44 2d 4d 4f 4e 2d 52 52 // rd 907 00 // rd 200 00 00 00 // rd 412  DD-MON-RR.......
0260   00 00 00 // rd 412 rd 153 49 4d 50 4c 49 46 49 45 44 20 43  ....SIMPLIFIED C
0270   48 49 4e 45 53 45 // rd 1808 00 // rd 200 00 00 00 // rd 406 00 00 00  HINESE.......... // rd 4
0280   06 // rd 142 49 4e 41 52 59 // rd 60b 00 // rd 200 00 00 00 // rd 40e 00 00  .BINARY.........
0290   00 // rd 40e // rd 148 48 2e 4d 49 2e 53 53 58 46 46 20 41 4d  ..HH.MI.SSXFF AM // rd 1402a0   39 00 // rd 200 00 00 00 // rd 418 00 00 00 // rd 418 // rd 144 44 2d 4d 4f  9..........DD-MO
02b0   4e 2d 52 52 20 48 48 2e 4d 49 2e 53 53 58 46 46  N-RR HH.MI.SSXFF
02c0   20 41 4d // rd 0x183a 00 // rd 200 00 00 00 // rd 412 00 00 00 // rd 412 // rd 148 48   AM:..........HH
02d0   2e 4d 49 2e 53 53 58 46 46 20 41 4d 20 54 5a 52  .MI.SSXFF AM TZR // rd 0x1202e0   3b 00 // rd 200 00 00 00 // rd 41c 00 00 00 // rd 41c // rd 144 44 2d 4d 4f  ;..........DD-MO
02f0   4e 2d 52 52 20 48 48 2e 4d 49 2e 53 53 58 46 46  N-RR HH.MI.SSXFF
0300   20 41 4d 20 54 5a 52 // rd 0x1c3c 00 // rd 200 00 00 00 // rd 402 00 00   AM TZR<........
0310   00 // rd 402 // rd 1a3 a4 // rd 234 00 // rd 200 00 00 00 // rd 406 00 00 00 // rd 406 // rd 142  ....4..........B
0320   49 4e 41 52 59  // rd 632 00 // rd 200 00 00 00 // rd 404 00 00 00 // rd 404  INARY2.......... // rd 1
0330   42 59 54 45 // rd 43d 00 // rd 200 00 00 00 // rd 405 00 00 00 // rd 405 // rd 146  BYTE=..........F
0340   41 4c 53 45 // rd 53e 00 // rd 200 00 00 00 // rd 40b 00 00 00 // rd 40b // rd 180  ALSE>...........
0350   00 00 00 44 3c 3c 80 00 00 00 a3 00 // rd 200 00 00 00  ...D<<.......... // rd 4
0360   04 // rd 1, 0x00a3就读一个么?01 00 00 00 // rd 404 00 // rd 201 // rd 1// rd 16 * 801 00 00 00 00 00 00 00  ................
0370   00 00 03 00 00 00 03 00 20 00 00 00 00 00 00 00  ........ .......
0380   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0390   00 05 00 00 01 00 00 00 36 01 00 00 00 00 00 00  ........6.......
03a0   00 00 00 00 00 00 00 00 00 4d 6f 19 00 00 00 00  .........Mo.....
03b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03c0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03d0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
03e0   00 00 00 00 00 00 00 00                          ........

更多推荐

tns数据流的的读取格式

本文发布于:2024-02-12 05:08:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686214.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据流   格式   tns

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!