§ Oracle兼容-函数-VSIZE()函数
§ 1. 语法
VSIZE( expr )
1
§ 2. 定义和用法
VSIZE()
函数的作用是返回 expr
的内部存储大小值。
参数 expr
是要进行分析的表达式,可以是数字或字符串等,也可以是各个类型的值,但不可为 BLOB
类型及其派生类型。
§ 3. Oracle兼容说明
- 由于Oracle与GreatSQL的内部存储机制不同,
VSIZE()
函数用于评估实际消耗的存储空间大小,因此返回值可能与Oracle不一致。 - 临时变量
@var
会使用其他中间表示式,直到被调用前才转换,目前不支持此类变量。
§ 4. 示例
-- 1. 参数expr为NULL
greatsql> SELECT VSIZE(NULL);
+-------------+
| VSIZE(NULL) |
+-------------+
| NULL |
+-------------+
-- 2. 参数expr为空字串时,被视为NULL
greatsql> SELECT VSIZE('');
+-----------+
| VSIZE('') |
+-----------+
| NULL |
+-----------+
-- 3. expr 可以是常量
greatsql> SELECT VSIZE(true), VSIZE(false);
+-------------+--------------+
| VSIZE(true) | VSIZE(false) |
+-------------+--------------+
| 1 | 1 |
+-------------+--------------+
greatsql> SELECT VSIZE('3306'), VSIZE(3306);
+---------------+-------------+
| VSIZE('3306') | VSIZE(3306) |
+---------------+-------------+
| 6 | 8 |
+---------------+-------------+
greatsql> SELECT VSIZE(date(NOW())), DATE(NOW());
+--------------------+-------------+
| VSIZE(date(NOW())) | DATE(NOW()) |
+--------------------+-------------+
| 3 | 2023-11-07 |
+--------------------+-------------+
greatsql> SELECT VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')), STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s');
+----------------------------------------------------+---------------------------------------------+
| VSIZE(STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s')) | STR_TO_DATE(SYSDATE(), '%Y-%m-%d %H:%i:%s') |
+----------------------------------------------------+---------------------------------------------+
| 8 | 2023-11-07 11:18:56 |
+----------------------------------------------------+---------------------------------------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
§ 问题反馈
§ 联系我们
扫码关注微信公众号