Oracle兼容-函数-VSIZE()函数


1. 语法

  1. VSIZE( expr )

2. 定义和用法

VSIZE() 函数的作用是返回 expr 的内部存储大小值。

参数 expr 是要进行分析的表达式,可以是数字或字符串等,也可以是各个类型的值,但不可为 BLOB 类型及其派生类型。

3. Oracle兼容说明

  • 由于Oracle与GreatSQL的内部存储机制不同,VSIZE() 函数用于评估实际消耗的存储空间大小,因此返回值可能与Oracle不一致。
  • 临时变量 @var 会使用其他中间表示式,直到被调用前才转换,目前不支持此类变量。

4. 示例

  1. -- 1. 参数exprNULL
  2. greatsql> SELECT VSIZE(NULL);
  3. +-------------+
  4. | VSIZE(NULL) |
  5. +-------------+
  6. | NULL |
  7. +-------------+
  8. -- 2. 参数expr为空字串时,被视为NULL
  9. greatsql> SELECT VSIZE('');
  10. +-----------+
  11. | VSIZE('') |
  12. +-----------+
  13. | NULL |
  14. +-----------+
  15. -- 3. expr 可以是常量
  16. greatsql> SELECT VSIZE(true), VSIZE(false);
  17. +-------------+--------------+
  18. | VSIZE(true) | VSIZE(false) |
  19. +-------------+--------------+
  20. | 1 | 1 |
  21. +-------------+--------------+
  22. greatsql> SELECT VSIZE('3306'), VSIZE(3306);
  23. +---------------+-------------+
  24. | VSIZE('3306') | VSIZE(3306) |
  25. +---------------+-------------+
  26. | 6 | 8 |
  27. +---------------+-------------+
  28. greatsql> SELECT VSIZE(date(NOW())), DATE(NOW());
  29. +--------------------+-------------+
  30. | VSIZE(date(NOW())) | DATE(NOW()) |
  31. +--------------------+-------------+
  32. | 3 | 2023-11-07 |
  33. +--------------------+-------------+
  34. greatsql> SELECT VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')), STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s');
  35. +----------------------------------------------------+---------------------------------------------+
  36. | VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')) | STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s') |
  37. +----------------------------------------------------+---------------------------------------------+
  38. | 8 | 2023-11-07 11:18:56 |
  39. +----------------------------------------------------+---------------------------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx