首页 > 数据库 > > 导入数据-使用gsql元命令导入数据
DWS的gsql工具提供了元命令\copy进行数据导入。
\copy 命令格式以及说明参见表 1 \copy元命令说明。
语法 | 说明 |
|---|---|
\copy { table [ ( column_list ) ] | ( query ) } { from | to } { filename | stdin | stdout | pstdin | pstdout } [ with ] [ binary ] [ oids ] [ delimiter [ as ] 'character' ] [ null [ as ] 'string' ] [ csv [ header ] [ quote [ as ] 'character' ] [ escape [ as ] 'character' ] [ force quote column_list | * ] [ force not null column_list ] ] | 在任何gsql客户端登录数据库成功后,可以使用该命令进行数据的导入/导出。但是与SQL的COPY命令不同,该命令读取/写入的文件是本地文件,而非数据库服务器端文件;所以,要操作的文件的可访问性、权限等,都是受限于本地用户的权限。 |
表的名字(可以有模式修饰)。
取值范围:已存在的表名。
可选的待拷贝字段列表。
取值范围:任意字段。如果没有声明字段列表,将使用所有字段。
其结果将被拷贝。
取值范围:一个必须用圆括弧包围的SELECT或VALUES命令。
文件的绝对路径。执行copy命令的用户必须有此路径的写权限。
声明输入是来自标准输入。
声明输出打印到标准输出。
声明输入是来自gsql的标准输入。
使用二进制格式存储和读取,而不是以文本的方式。在二进制模式下,不能声明DELIMITER,NULL,CSV选项。指定binary类型后,不能再通过option或copy_option指定CSV、FIXED、TEXT等类型。
为每行拷贝内部对象标识(oid)。
说明:若COPY FROM对象为query或者对于没有oid的表,指定oids标识报错。
取值范围:true/on,false/off。
默认值:false
说明:取值范围:支持多字符分隔符,但分隔符不能超过10个字节。
默认值:
用来指定数据文件中空值的表示。
取值范围:
默认值:
指定导出数据文件是否包含标题行,标题行一般用来描述表中每个字段的信息。header只能用于CSV,FIXED格式的文件中。
在导入数据时,如果header选项为on,则数据文本第一行会被识别为标题行,会忽略此行。如果header为off,而数据文件中第一行会被识别为数据。
在导出数据时,如果header选项为on,则需要指定fileheader。fileheader是指定导出数据包含标题行的定义文件。如果header为off,则导出数据文件不包含标题行。
取值范围:true/on,false/off。
默认值:false
CSV格式文件下的引号字符。
默认值:双引号。
说明:CSV格式下,用来指定逃逸字符,逃逸字符只能指定为单字节字符。
默认值:双引号。当与quote值相同时,会被替换为'\0'。
在CSV COPY TO模式下,强制在每个声明的字段周围对所有非NULL值都使用引号包围。NULL输出不会被引号包围。
取值范围:已存在的字段。
在CSV COPY FROM模式下,指定的字段输入不能为空。
取值范围:已存在的字段。
CREATE TABLE a(a int)导入数据。
\copy a from stdin;出现>>符号提示时,输入数据,输入\.时结束。
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1
>> 2
>> \.
查询导入目标表a的数据。
SELECT * FROM a;
a
---
1
2
(2 rows)
\copy a FROM '/home/omm/2.csv' WITH (delimiter',',IGNORE_EXTRA_DATA 'on');
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3135896/ ,如需转载,请注明出处,否则将追究法律责任。