返回首页

gbase数据、南大通用产品文档:GBase8a使用CHARACTER SET 参数导出数据

更新日期:2024年09月11日

示例
示例中所用的表及数据:
CREATE TABLE "test_3" (
"column_1" int(11) DEFAULT NULL,
"column_2" varchar(10) DEFAULT NULL,
"column_3" varchar(20)
DEFAULT NULL);

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1242
gbase> select * from test_3;
+----------+----------+----------+
| column_1 | column_2 | column_3 |
+----------+----------+----------+
|
59432 | gg
| laqpqpd
|
|
43452 | sisoekso | mozoa,a
|
|
3890 | lqps,rpd | gg
|
+----------+----------+----------+
3 rows in set (Elapsed: 00:00:00.01)
导出SQL 语句:
gbase> select * from test_3 into outfile '/home/gbase/test.txt'
character set
gbk;
Query OK, 3 rows affected (Elapsed: 00:00:00.29)
查看导出文件:
$cat test.txt:
43452
sisoekso
mozoa,a
3890
lqps,rpd
gg
59432
gg
laqpqpd

以文本方式加载位于S3 服务器上的一组文件,使用默认行分隔符和默认列分隔
符,使用通配符方式加载。
示例
LOAD DATA INFILE
's3n://GPCQN6HKP2BI3N6NKZGY:Nkf5ad6WD2MbWF6F6GDobB8N
udwC58ist%2FJNJwY0@127.0.0.1:9050/us-east-1/loaddata/test/*.tbl' INTO
TABLE test.t;

dttoasc() 函数将 datetime 变量的字段值转换为符合 ANSI SQL 标准的 ASCII
字符串。
语法
mint dttoasc(dtvalue, outbuf)
dtime_t *dtvalue;
char *outbuf;
dtvalue
指向要转换的初始化了的 datetime 变量的指针。
outbuf
指向为 dtvalue 中的值接收 ANSI 标准 DATETIME 字符串的缓冲区的指针。

用法
dttoasc() 函数将 datetime 变量中的字段的数字转换为它们等同的字符,并将它们复
制至 outbuf 字符串,在它们之间带有定界符(连字符、空格、冒号或句号)。您必须以您
想要该字符串拥有的限定符来初始化 dtvalue 中的 datetime 变量。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 691 -
该字符串不包括 SQL 语句用于定界 DATETIME 文字的限定符或圆括号。 outbuf
字符串符合 ANSI SQL 标准。
它包括针对每一定界符的一个字符,
加上字段,
其大小如下:
字段
字段大小
Year
4 位
DATETIME 的部分
如精度所指定
所有其他字段
2 位

带有 year to fraction(5) 限定符的 datetime 值产生最大的输出长度。等同的字符串
包含 19 位、6 定界符以及空终止符,总计 26 字节:
YYYY-MM-DD HH:MM:SS.FFFFF

如果您未初始化 datetime 变量的限定符,则 dttoasc() 函数返回不可预料的值,但此
值不超过 26 字节。

返回代码
0
转换成功。
<0
转换失败。

示例

demo 目录在文件 dttoasc.ec 中包含此样例程序。
/*
* dttoasc.ec *
The following program illustrates the conversion of a datetime value into an ASCII string
in ANSI SQL format
*/

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 692 -

#include

EXEC SQL include datetime;

main()
{
char out_str[16];

EXEC SQL BEGIN DECLARE SECTION;
datetime year to hour dt1;
EXEC SQL END DECLARE SECTION;

printf("DTTOASC Sample ESQL Program running.\n\n");

/* Initialize dt1 */
dtcurrent(&dt1);

/* Convert the internal format to ascii for displaying */
dttoasc(&dt1, out_str);

/* Print it out*/
printf("\tToday's datetime (year to hour)value is %s\n", out_str);

printf("\nDTTOASC Sample Program over.\n\n");
}
输出
DTTOASC Sample ESQL Program running.

Today's datetime (year to hour) value is 2007-09-19 08

DTTOASC Sample Program over.


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 693 -