注意事项中用例
示例
示例1:“rmt:”与select_syntax 之间不能有空格。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt: SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
示例2:file_path,以及FIELD_OPTION 中的字段分隔符,字段包围符,转义标
识符等均必须用单引号“'”包围,否则无法正常导出数据。
可正确导出数据的语句:
rmt:SELECT * FROM cust INTO OUTFILE '/home/gbase/temp/cust.txt';
会报语法错误的语句:
rmt:SELECT * FROM cust INTO OUTFILE /home/gbase/temp/cust.txt;
示例3:远程导出不支持顶层查询是UNION 类查询。
会报语法错误的语句:
rmt:SELECT * FROM cust UNION SELECT * FROM product INTO
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1257
OUTFILE '/home/gbase/temp/product.txt';
ERROR 1149 (42000): (GBA-02SC-1001) SELECT INTO OUTFILE with
UNION is not supported.
示例4:远程导出的目标文件如果已经在本地存在,则不能通过select
@@error_count 来获得错误数,原因为文件是否存在由客户端判断,而
@@error_count 是服务端变量。
示例中所用的表及数据:
create table t(id int);
insert into t values(1);
导出SQL 语句:
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
Query OK, 1 row affected
gbase> rmt:select * from t into outfile '/home/gbase/t.txt';
ERROR:
Can't open file '/home/gbase/t.txt' to write. Caused by: File exists
gbase> select @@error_count;
+---------------+
| @@error_count |
+---------------+
|
0 |
+---------------+
1 row in set