回答

收藏

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

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

sqlsrv_query上的sql变量是否有任何已知的长度限制?我有一个应用程序,它发送一个命令块来执行SQL SERVER(插入到…,插入到…等)。它在Linux(mssql)上运行良好,但在Windows(sqlsrv)上,最后一条指令被忽略。丢失最后一条指令的sql命令有4900行。2 K8 C* r+ Y3 n
$qry_str = "";
, Y2 c, o. Z+ K# I8 U! pfor () {6 A5 z  O9 o7 ~, `6 [# \
    $qry = "INSERT INTO tbl) ]3 `* M3 h5 Z
                (field1,7 |& P) d1 e  k9 s
                 field2,% @. j7 u$ M* Y3 l  t3 Y
                 etc)% F& A- I7 t3 _4 y$ H6 K+ Z  e
            VALUES
. l: M8 h1 a( @7 C                ('$val1',
' j5 O6 d" S3 r* P7 o                 '$val2',
( H8 d. i( U# M9 C2 t. P                 etc)";( p( Y6 U& w: n2 `1 r
    //echo "$qry";
& V# k, I  Q3 t, ^% r3 V$ H    $qry_str .= "$qry;\n";( i2 R/ M5 F) s7 e% o; H
}; i1 k% M$ Y" E$ f
                1 i5 A1 W7 r. O$ d1 ^
解决方案:
/ P! t( j8 S; c3 j7 j               
9 M$ M: [" u& S0 ~$ @) T) A" {
* n; n' H) k2 p5 q: Z( k5 ?/ w3 b" p( d* R0 ~
                在sqlsrv_query大于536的sql字符串上,将截断为65536个字符。尝试使用mssql_query查询或将查询写入文件,然后从sqlcmd工具执行查询
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则