表 SQL 语法

表对象支持列出的 DDL 工作负载 SQL 语法。

Oracle AI Data Platform Workbench 支持所有标准 Spark SQL 数据类型。有关更多信息,请参见Apache Spark Documentation - Supported Data Types

操作 语法
创建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <catalog_name>.<schema-name>.<table-name>
[ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ]
USING [HIVE|DELTA, CSV, TXT, ORC, JDBC, PARQUET, etc.]
[ options ( <key1>=<val1>[, ...]) ]
[ PARTITIONED BY (<par-column-name>[, ...]) ]
[ CLUSTERED BY ( <clus-column-name>[, ...])
    [ SORTED BY ( <sort-column-name> [ asc | desc ][, ...]) ]
    INTO <num_buckets> buckets]
[ LOCATION '<path>']
[TBLPROPERTIES ( DESCRIPTION = 'some-description', '<property-name>'='<property-value>'[, ...]) ]

响应:

<<SQL Command>> was successfully executed

错误:

Error: <<SQL Command>> failed due to <<reason>>
创建托管表
创建托管表
CREATE TABLE <catalog>.<schema>.<table-name> [ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ] USING <format>;

响应:

<<SQL Command>> was successfully executed
错误:
Error: <<SQL Command>> failed due to <<reason>>
创建包含数据的托管表
create datatable <<catalog_name>>.<<schema_name>>.<<table_name>> [ ( <column1-name><column1-type> [comment <column1-comment>], ... ) ] tblproperties ('lakehouse_storage_format'='PARQUET') using parquet with select ( <column1-name>], ... ) from parquet.'oci://bucket@namespace/folder/'

响应:

<<SQL Command>> was successfully executed
错误:
Error: <<SQL Command>> failed due to <<reason>>
创建具有统一支持的表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <catalog_name>.<schema-name>.<table-name>
[ ( <column1-name> <column1-type> [comment <column1-comment>], ... ) ]
[TBLPROPERTIES ('delta.universalFormat.enabledFormats' = 'iceberg') ]
变更表
ALTER TABLE table_old_name RENAME TO table_new_name
ALTER TABLE table_name ADD COLUMNS ( col_spec [ , ... ])
ALTER TABLE table_name DROP { COLUMN | COLUMNS } [ ( ] col_name [ , ... ] [ ) ]
ALTER TABLE table_name RENAME COLUMN col_name TO col_name
ALTER TABLE table_name ADD [IF NOT EXISTS] ( partition_spec [partition_spec ... ] )
ALTER TABLE table_name DROP [ IF EXISTS ] partition_spec [PURGE]
ALTER TABLE table_name set tblproperties (description ='some-description')
删除表
DROP TABLE [ IF EXISTS ] table_name [ PURGE ]

答复

<<SQL Command>> was successfully executed

错误

Error: <<SQL Command>> failed due to <<reason>>
列出方案中的表
SHOW TABLES in catalog_name.schema_name [ LIKE <regex_pattern> ]

regex_pattern:用于过滤语句结果的正则表达式模式。

响应:
<<namesake>>,tableName,isTemporary

错误:

<<SQL Command>> failed due to <<reason>>
描述表
DESCRIBE TABLE [ FORMAT ] catalog_name.schema_name.table_name [ PARTITION (<partition_col_name> = <partition_col_val>, ...) ] [ catalog_name.schema_name.table_name.column_name ]

格式:如果将 EXTENDED 指定为格式,则会返回附加元数据信息(如父数据库、所有者和访问时间)。

DESCRIBE TABLE catalog.schema.table 响应:

col_name,data_type,comment
DESCRIBE TABLE catalog.schema.table column 响应:
info_name,info_value