0

我对此不太走运。我正在创建一个新表并添加具有默认值的列 - 该表将列数据类型默认为 CHAR 7,但最后一列需要为 CHAR 30。

到目前为止,我只能在创建后修改表,但必须有一种方法可以一步完成。

CREATE TABLE table1 parallel 8 NOLOGGING AS
SELECT
  t2.1,
  t2.2,
  t2.3,
  'N' AS Store,
  'N' AS Address,
  'N' AS Owner,
  'N' AS User,
  'N' AS Business,
  'Unknown' AS Source
FROM t2

最后一列(源)值超过 7 个字符,但所有其他值为 Y/N。我的第一个想法是做 'Unknown' AS Source (char 30),但我继续得到 ORA-00923

任何帮助将不胜感激。

4

1 回答 1

3

如果它需要是一个 CHAR(30) 你应该确保它是。用空格填充它不一定是正确的方法。最好使用CAST()函数告诉数据库您希望它是什么,该函数在数据类型之间进行转换:

cast('Unknown' as char(30)) as source
于 2013-05-10T20:13:30.197 回答