回答

收藏

sqlsrv_query上的sql变量的长度限制?

技术问答 技术问答 405 人阅读 | 0 人回复 | 2023-09-14

sqlsrv_query上的sql变量是否有任何已知的长度限制?我有一个应用程序,它发送一个命令块来执行SQL SERVER(插入到…,插入到…等)。它在Linux(mssql)上运行良好,但在Windows(sqlsrv)上,最后一条指令被忽略。丢失最后一条指令的sql命令有4900行。9 F3 i* f. p' F* b4 }5 d
$qry_str = "";
/ K1 k8 D5 ^2 h8 y+ n3 Tfor () {
; N- v! ]2 l# F; K( o1 K' b( K    $qry = "INSERT INTO tbl1 ~7 u8 I( l. H* V
                (field1,
* ^0 P4 n% h/ a. h7 t                 field2,
+ a9 n" L9 c4 z8 o1 y                 etc)0 u1 l+ ]$ C: ^3 J) }: [1 V
            VALUES9 u$ i: L/ p8 v9 ?2 o" U
                ('$val1',8 |: }# L' x6 D. t
                 '$val2',
, n" C) G. {' c; \+ `                 etc)";
. B( ~+ z3 ?' F% C    //echo "$qry";
) z+ `! }" l/ v    $qry_str .= "$qry;\n";! o5 F1 l/ e8 T4 s
}, U& I2 j6 d6 q- |& `
               
" t( Q1 A$ U. {  K: F$ u解决方案:- }) [  }/ X! [3 E! m" \1 j% N: Q
               
% r1 j  e2 y! t* [9 H7 k  k5 Y( h: x; v

; O( {# M" x5 B* n: y2 y* D                在sqlsrv_query大于536的sql字符串上,将截断为65536个字符。尝试使用mssql_query查询或将查询写入文件,然后从sqlcmd工具执行查询
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则