github.com/mithrandie/csvq@v1.18.1/docs/_posts/2006-01-02-prepared-statement.md (about)

     1  ---
     2  layout: default
     3  title: Prepared Statement - Reference Manual - csvq
     4  category: reference
     5  ---
     6  
     7  # Prepared Statement
     8  
     9  A prepared statement is used to execute the same statement repeatedly with embedded values.
    10  
    11  * [Usage Flow](#usage_flow)
    12  * [Prepare Statement](#prepare)
    13  * [Execute Prepared Statement](#execute)
    14  * [Dispose Prepared Statement](#dispose)
    15  * [Placeholder](#placeholder)
    16  
    17  ## Usage Flow
    18  {: #usage_flow}
    19  
    20  1. Prepare a statement.
    21  2. Execute the statement using embedded values.
    22  3. Dispose the statement as necessary.
    23  
    24  ## Prepare Statement
    25  {: #prepare}
    26  
    27  ```sql
    28  PREPARE statement_name FROM statement;
    29  ```
    30  
    31  _statement_name_
    32  : [identifier]({{ '/reference/statement.html#parsing' | relative_url }})
    33  
    34  _statement_
    35  : [string]({{ '/reference/value.html#string' | relative_url }})
    36  
    37  
    38  ## Execute Prepared Statement
    39  {: #execute}
    40  
    41  ```sql
    42  execute_statement
    43    : EXECUTE statement_name;
    44    | EXECUTE statement_name USING replace_value [, replace_value ...];
    45    
    46  replace_value
    47    : value
    48    | value AS placeholder_name
    49  ```
    50  
    51  _statement_name_
    52  : [identifier]({{ '/reference/statement.html#parsing' | relative_url }})
    53  
    54  _value_
    55  : [value]({{ '/reference/value.html' | relative_url }})
    56  
    57  _placeholder_name_
    58  : [identifier]({{ '/reference/statement.html#parsing' | relative_url }})
    59  
    60    Placeholder names are used for named placeholders.
    61  
    62  
    63  ## Dispose Prepared Statement
    64  {: #dispose}
    65  
    66  ```sql
    67  DISPOSE PREPARE statement_name;
    68  ```
    69  
    70  _statement_name_
    71  : [identifier]({{ '/reference/statement.html#parsing' | relative_url }})
    72  
    73  ## Placeholder
    74  {: #placeholder}
    75  
    76  Positional Placeholder
    77  : Question Mark(U+003F `?`)
    78  
    79  Named Placeholder
    80  : Colon(U+003A `:`) and followd by [identifier]({{ '/reference/statement.html#parsing' | relative_url }})
    81  
    82  ### Example
    83  
    84  ```sql
    85  -- Positional Placeholder
    86  PREPARE stmt1 FROM 'SELECT ?, ?, ?;';
    87  EXECUTE stmt1 USING 'a', 'b', 'c';
    88  
    89  -- Named Placeholder
    90  PREPARE stmt2 FROM 'SELECT :second, :third, :first;';
    91  EXECUTE stmt2 USING 'a' AS `first`, 'b' AS `second`, 'c' AS `third`;
    92  ```