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


1. 语法

1. VSIZE( expr )

2. 定义和用法

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

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

3. Oracle兼容说明

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

4. 示例

1. -- 1. 参数expr为NULL
2. greatsql> SELECT VSIZE(NULL);
3. +-------------+
4. | VSIZE(NULL) |
5. +-------------+
6. |        NULL |
7. +-------------+

9. -- 2. 参数expr为空字串时,被视为NULL
10. greatsql> SELECT VSIZE('');
11. +-----------+
12. | VSIZE('') |
13. +-----------+
14. |      NULL |
15. +-----------+

17. -- 3. expr 可以是常量
18. greatsql> SELECT VSIZE(true), VSIZE(false);
19. +-------------+--------------+
20. | VSIZE(true) | VSIZE(false) |
21. +-------------+--------------+
22. |           1 |            1 |
23. +-------------+--------------+

25. greatsql> SELECT VSIZE('3306'), VSIZE(3306);
26. +---------------+-------------+
27. | VSIZE('3306') | VSIZE(3306) |
28. +---------------+-------------+
29. |             6 |           8 |
30. +---------------+-------------+

32. greatsql> SELECT VSIZE(date(NOW())), DATE(NOW());
33. +--------------------+-------------+
34. | VSIZE(date(NOW())) | DATE(NOW()) |
35. +--------------------+-------------+
36. |                  3 | 2023-11-07  |
37. +--------------------+-------------+

39. greatsql> SELECT VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')), STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s');
40. +----------------------------------------------------+---------------------------------------------+
41. | VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')) | STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s') |
42. +----------------------------------------------------+---------------------------------------------+
43. |                                                  8 | 2023-11-07 11:18:56                         |
44. +----------------------------------------------------+---------------------------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx