我想更改一个表以包含modified
和created
列。但是,我在添加modified
列时遇到了问题。我收到以下错误:
SQL 错误:ORA-00907:缺少右括号 00907. 00000 - “缺少右括号”
我正在阅读此 Oracle 文档(http://docs.oracle.com/cd/E17952_01/refman-5.5-en/timestamp-initialization.html)以获取有关如何正确编写ON UPDATE
语法的示例
这是我的 SQL。
ALTER TABLE FOOBAR
ADD (
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)
为什么会出现缺少右括号的错误?
这是我之前发布的帖子的后续问题。我们正在迁移到新的字符集。现在,我是一名程序员,我们有 DBA 将执行这项工作,但我想获得有关该过程的更多信息。我们当前的字符集是 WE8ISO8859P1 并使用 BYTE 字符语义。但是,我们正在迁移到 AL32UTF8。使用 BYTE 语义创建了一个包含 AL32UTF8 字符集的新数据库。DBA 在一些表上运行了一个脚本来检查是否有任何问题(我相信是 CSALTER)。运行脚本后,它说我们表中的某些行将被截断。该表包含一个设置为 4000 BYTES 的 VARCHAR2(BYTE) 列。导致潜在问题的行都包含特殊字符。我的问题是,我们如何在不截断信息的情况下导出/导入数据库中的表?为什么说它会被截断?我的第一个想法是,由于我们更改了字符集,它可能会存储旧数据库表中的某些字符,而不是将其存储到新数据库中时,字符集会占用更多存储空间。