package main import ( "encoding/json" "log" "testing" "git.x2erp.com/qdy/go-db/factory/database" ) func TestNamedParamsQueryCSV(t *testing.T) { factory, err := database.GetDBFactory() if err != nil { t.Fatalf("Failed to get DB factory: %v", err) } defer factory.Close() // 简化的SQL,只测试3个参数 sql := ` SELECT * FROM ( SELECT a.*, ROWNUM rn FROM ( SELECT CLOTHING_ID, CLOTHING_NAME FROM X6_STOCK_DEV.A3_CLOTHING where clothing_id>:1 ORDER BY CLOTHING_ID ) a WHERE ROWNUM <= :2 ) WHERE rn > :3 ` // // 3个参数 params := []interface{}{ "A", 10, 0, } // // 3个参数 // params := map[string]interface{}{ // "end_row": 10, // "start_row": 0, // } // // 3个参数 // params := map[string]interface{}{ // "clothing_id": "`0`", // "end_row": 10, // "start_row": 0, // } // 执行查询 result := factory.QueryPositionalToJSON(sql, params) // 检查结果 - 根据你的错误信息,result.Error 是 string 类型 if err != nil { // 改成检查空字符串 t.Errorf("Named parameters query failed: %s", err) } else { // 将请求参数输出为格式化的 JSON 日志 reqJSON, err := json.MarshalIndent(result, "", " ") if err != nil { log.Printf("无法序列化请求参数: %v", err) } else { log.Printf("QueryRequest 参数:\n%s", string(reqJSON)) } // 或者使用 fmt 输出 //fmt.Printf("=== QueryRequest ===\n%s\n====================\n", string(reqJSON)) } }