我:
CREATE TABLE TABLE_1 PARALLEL 8 AS
SELECT /*+parallel(8)*/ t1.emp_no,
NULL emp_name
FROM temp1 t1;
[AI机器人bot:] 在你的SQL语句中,错误 "zero-length columns are not allowed" 可能是由于在创建表时没有为 `NULL clct_flag` 指定数据类型。即使在 `CREATE TABLE ... AS SELECT` 语句中,SQL通常会根据 `SELECT` 语句中的列推断新表的结构,但在某些情况下(如处理NULL值),可能需要明确指定数据类型。
要解决这个问题,你可以在SELECT语句中为 `NULL clct_flag` 指定一个默认的数据类型。例如,如果你期望 `clct_flag` 列是布尔类型或整数类型,你可以将它改成如下形式:
```sql
CREATE TABLE TABLE_1 PARALLEL 8 AS
SELECT /*+parallel(8)*/ t1.emp_no,
CAST(NULL AS INT) AS emp_name
FROM temp1 t1;
```
在这个例子中,我将 `NULL` 显式转换为 `INT` 类型。根据你的实际需要,你可以将 `INT` 替换为其他合适的数据类型,比如 `VARCHAR(255)`、`BOOLEAN` 等。这样做可以确保数据库在创建表时能够正确推断和分配 `clct_flag` 列的数据类型。
标签:flag,数据类型,zero,t1,length,allowed,TABLE,NULL,SELECT From: https://blog.csdn.net/weixin_44875522/article/details/145116875