STV_ShpCreateTable

返回包含在指定的 shapefile 中找到的属性列和类型的 CREATE TABLE 语句。

列类型将根据 shapefile 元数据调整大小。列大小基于在 shapefile 中找到的最大几何图形。表中的第一列是 gid,它是自动递增的 IDENTITY 主关键字列。缓存值默认设为 64。最后一列是用于存储实际几何数据的 GEOMETRY 数据类型。

行为类型

不可变

语法

STV_ShpCreateTable (USING PARAMETERS file='filename') OVER()

参数

file = 'filename'
.dbf.shp.shx 文件的完全限定路径(文件扩展名可选)。

您还可以使用存储在您具有读取和写入权限的挂载 S3 目录中的 shapefile 创建表。使用以下语法:

bucketname/path/filename

返回

与指定的 shapefile 相匹配的 CREATE TABLE 语句

使用提示

  • STV_ShpCreateTable 会返回 CREATE TABLE 语句;但它不会创建表。根据需要修改 CREATE TABLE 语句,在将 shapefile 加载到表中之前创建该表。

  • 要使用字母数字和下划线 (_) 字符之外的其他字符创建表,必须指定双引号括起的表名称,例如"counties%NY"

  • 表名称与 shapefile 的名称相同(不包括目录名称或扩展名)。

  • 必须可以从启动节点访问 shapefile。

  • 如果 .shp 和 .shx 文件已损坏,STV_ShpCreateTable 将返回错误。如果 .shp 和 .shx 文件有效,但 .dbf 文件已损坏,STV_ShpCreateTable 将忽略 .dbf 文件并且不创建该数据对应的列。

  • 所有必要文件(.dbf.shp.shx)必须在同一个目录中。否则,STV_ShpCreateTable 将会返回错误。

  • 如果 shapefile 的 .dbf 组件包含数字属性,则在 Vertica shapefile 加载程序将此字段加载到表中时,此字段的值可能会损失精度。因为目标字段为 64 位 FLOAT 列,只能表示约 15 个有效位。而在 .dbf 文件中,数字字段最多可达 30 位。

    Vertica 会在 vertica.log 文件中记录所有太长的 shapefile 值实例。

示例

以下示例显示了 STV_ShpCreateTable 的用法。

返回 CREATE TABLE 语句:


=> SELECT STV_ShpCreateTable
      (USING PARAMETERS file='/shapefiles/tl_2010_us_state10.shp')
      OVER() as create_table_states;
      create_table_states
 ----------------------------------
CREATE TABLE tl_2010_us_state10(
   gid IDENTITY(64) PRIMARY KEY,
   REGION10 VARCHAR(2),
   DIVISION10 VARCHAR(2),
   STATEFP10 VARCHAR(2),
   STATENS10 VARCHAR(8),
   GEOID10 VARCHAR(2),
   STUSPS10 VARCHAR(2),
   NAME10 VARCHAR(100),
   LSAD10 VARCHAR(2),
   MTFCC10 VARCHAR(5),
   FUNCSTAT10 VARCHAR(1),
   ALAND10 INT8,
   AWATER10 INT8,
   INTPTLAT10 VARCHAR(11),
   INTPTLON10 VARCHAR(12),
   geom GEOMETRY(940845)
);
(18 rows)

另请参阅