Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将列名重命名为sysdate_Sql_Oracle - Fatal编程技术网

Sql 将列名重命名为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

我的任务是每天更新主表中的数据,也就是说,我正在向主表中添加一个名为“今日”号的新列,并成功写入数据,但无法使用SYSDATE重命名今日列

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来实现这一点。