hana_execute_query
Execute custom SQL queries on HANA Cloud database to retrieve, analyze, or modify data through prepared statements.
Instructions
Execute a custom SQL query against the HANA database
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The SQL query to execute | |
| parameters | No | Optional parameters for the query (for prepared statements) |
Implementation Reference
- src/tools/query-tools.js:14-46 (handler)The main handler function QueryTools.executeQuery that validates input, executes the SQL query using QueryExecutor, formats results, and handles errors.static async executeQuery(args) { logger.tool('hana_execute_query', args); const { query, parameters = [] } = args || {}; // Validate required parameters const validation = Validators.validateRequired(args, ['query'], 'hana_execute_query'); if (!validation.valid) { return Formatters.createErrorResponse('Error: query parameter is required', validation.error); } // Validate query const queryValidation = Validators.validateQuery(query); if (!queryValidation.valid) { return Formatters.createErrorResponse('Invalid query', queryValidation.error); } // Validate parameters const paramValidation = Validators.validateParameters(parameters); if (!paramValidation.valid) { return Formatters.createErrorResponse('Invalid parameters', paramValidation.error); } try { const results = await QueryExecutor.executeQuery(query, parameters); const formattedResults = Formatters.formatQueryResults(results, query); return Formatters.createResponse(formattedResults); } catch (error) { logger.error('Query execution failed:', error.message); return Formatters.createErrorResponse('Query execution failed', error.message); } }
- The input schema definition for the hana_execute_query tool, specifying the query parameter as required and parameters as optional array.name: "hana_execute_query", description: "Execute a custom SQL query against the HANA database", inputSchema: { type: "object", properties: { query: { type: "string", description: "The SQL query to execute" }, parameters: { type: "array", description: "Optional parameters for the query (for prepared statements)", items: { type: "string" } } }, required: ["query"] } }
- src/tools/index.js:14-24 (registration)The TOOL_IMPLEMENTATIONS object that registers 'hana_execute_query' mapped to QueryTools.executeQuery for execution via ToolRegistry.const TOOL_IMPLEMENTATIONS = { hana_show_config: ConfigTools.showConfig, hana_test_connection: ConfigTools.testConnection, hana_show_env_vars: ConfigTools.showEnvVars, hana_list_schemas: SchemaTools.listSchemas, hana_list_tables: TableTools.listTables, hana_describe_table: TableTools.describeTable, hana_list_indexes: IndexTools.listIndexes, hana_describe_index: IndexTools.describeIndex, hana_execute_query: QueryTools.executeQuery };