Sql 将列名重命名为sysdate
我的任务是每天更新主表中的数据,也就是说,我正在向主表中添加一个名为“今日”号的新列,并成功写入数据,但无法使用SYSDATE重命名今日列Sql 将列名重命名为sysdate,sql,oracle,Sql,Oracle,我的任务是每天更新主表中的数据,也就是说,我正在向主表中添加一个名为“今日”号的新列,并成功写入数据,但无法使用SYSDATE重命名今日列 ALTER TABLE DATA_HIST RENAME COLUMN TODAY TO SYSDATE; 我得到上面脚本的无效标识符错误 也在下面尝试使用TO_CHAR,但未成功 ALTER TABLE DATA_HIST RENAME COLUMN TODAY TO TO_CHAR(SYSDATE); 提前谢谢 Nash用双引号转义列名: ALT
ALTER TABLE DATA_HIST
RENAME COLUMN TODAY TO SYSDATE;
我得到上面脚本的无效标识符错误
也在下面尝试使用TO_CHAR,但未成功
ALTER TABLE DATA_HIST
RENAME COLUMN TODAY TO TO_CHAR(SYSDATE);
提前谢谢
Nash用双引号转义列名:
ALTER TABLE DATA_HIST
RENAME COLUMN TODAY TO "SYSDATE";
但一般来说,您应该避免以关键字或系统函数名命名表和列。用双引号转义列名:
ALTER TABLE DATA_HIST
RENAME COLUMN TODAY TO "SYSDATE";
但一般来说,您应该避免以关键字或系统函数名命名表和列。我假设SYSDATE是一个保留字。试试“SYSDATE”,或者选择一个更好的列名。我假设SYSDATE是一个保留字。试试“SYSDATE”,或者选择一个更好的列名。不必在将来的查询中产生错误的可能性。@Magisch有时我们会遇到类似的问题,但最好是避免潜在的问题。这只是另一个需要避免的原因,每次需要访问该列时,都必须使用双引号作为响应时间。但我试图用实际日期重命名列字段,即2017年10月20日,在本例中为SYSDATE。如果我使用“SYSDATE”,那么列名将被重命名为SYSDATE,而不是值20/10/2017为什么要这样做?这意味着列名将不断更改。在任何情况下,我认为您都需要动态SQL来实现这一点。我赞成避免这种情况。不必在将来的查询中产生错误的可能性。@Magisch有时我们会遇到类似的问题,但最好是避免潜在的问题。这只是另一个需要避免的原因,每次需要访问该列时,都必须使用双引号作为响应时间。但我试图用实际日期重命名列字段,即2017年10月20日,在本例中为SYSDATE。如果我使用“SYSDATE”,那么列名将被重命名为SYSDATE,而不是值20/10/2017为什么要这样做?这意味着列名将不断更改。在任何情况下,我认为您都需要动态SQL来实现这一点。