sql >> データベース >  >> RDS >> SQLite

単一のexecSQLクエリで指定できるSQL変数の制限は何ですか

    制限はsqlite3.cにハードコーディングされており、999に設定されています。残念ながら変更できますが、コンパイル時のみです。関連するスニペットは次のとおりです。

    /*
    ** The maximum value of a ?nnn wildcard that the parser will accept.
    */
    #ifndef SQLITE_MAX_VARIABLE_NUMBER
    # define SQLITE_MAX_VARIABLE_NUMBER 999
    #endif
    
    
    /*
    ** The datatype ynVar is a signed integer, either 16-bit or 32-bit.
    ** Usually it is 16-bits.  But if SQLITE_MAX_VARIABLE_NUMBER is greater
    ** than 32767 we have to make it 32-bit.  16-bit is preferred because
    ** it uses less memory in the Expr object, which is a big memory user
    ** in systems with lots of prepared statements.  And few applications
    ** need more than about 10 or 20 variables.  But some extreme users want
    ** to have prepared statements with over 32767 variables, and for them
    ** the option is available (at compile-time).
    */
    #if SQLITE_MAX_VARIABLE_NUMBER<=32767
    typedef i16 ynVar;
    #else
    typedef int ynVar;
    #endif
    


    1. SQL /HQLJavaからのテーブル名と列名の解析

    2. MySQLでテーブルを作成する前にテーブルがすでに存在するかどうかを確認する方法

    3. Oracleの日時形式要素のリスト

    4. 2022年に練習しなければならないSQLクエリインタビューの質問トップ30