lob_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package test
  2. import (
  3. "fmt"
  4. "io"
  5. "os"
  6. "testing"
  7. )
  8. func TestInsertLob(t *testing.T) {
  9. // 打开文件
  10. file, err := os.Open("A.jpg")
  11. if err != nil {
  12. fmt.Println("Error opening file:", err)
  13. return
  14. }
  15. // 确保在函数结束时关闭文件
  16. defer file.Close()
  17. // 读取文件内容
  18. fileContent, err := io.ReadAll(file)
  19. if err != nil {
  20. fmt.Println("Error reading file:", err)
  21. return
  22. }
  23. _, err = db.Exec("INSERT INTO gotab3 VALUES(?,NULL,?,NULL);", 3, fileContent)
  24. if err != nil {
  25. fmt.Printf("[ERROR] %s\n", err.Error())
  26. }
  27. }
  28. func TestSelecttLob(t *testing.T) {
  29. rows, err := db.Query("select * from gotab3;")
  30. if err != nil {
  31. fmt.Printf("[ERROR] %s\n", err.Error())
  32. return
  33. }
  34. column, err := rows.Columns()
  35. if err != nil {
  36. fmt.Printf("[ERROR] %s\n", err.Error())
  37. return
  38. }
  39. rows_value := make([]interface{}, len(column))
  40. for key, _ := range rows_value {
  41. dest := make([]byte, 1000000)
  42. rows_value[key] = &dest
  43. }
  44. for rows.Next() {
  45. rows.Scan(rows_value...)
  46. for _, v := range rows_value {
  47. fmt.Printf("结果: %s\t", string(*(v.(*[]byte))))
  48. }
  49. fmt.Printf("\n")
  50. }
  51. rows.Close()
  52. db.Close()
  53. }