在oracle中创建为select

在oracle中创建为select,oracle,Oracle,我有一个关于使用其他表创建表的小问题 我的代码: create table TB_OLAP_TELEFONIA as select ID AS LOG_ID, HORAFIM AS LOG_HORA, DURACAO AS LOG_DURA, TO_CHAR( HORAFIM, 'D') AS LOG_DIA_SEMANA, TO_NUMBER(

我有一个关于使用其他表创建表的小问题

我的代码:

create table TB_OLAP_TELEFONIA as 

select   ID                AS LOG_ID,
         HORAFIM           AS LOG_HORA,
         DURACAO           AS LOG_DURA,
         TO_CHAR( HORAFIM, 'D')  AS LOG_DIA_SEMANA,
         TO_NUMBER( SUBSTR( NUMEROA, 3, 1 ) ) AS LOG_NUMA_TIPO,
         TO_NUMBER( SUBSTR( NUMEROA, 3, 1 ) ) AS LOG_NUMB_TIPO,
         SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMA_ESTADO,          
         SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMB_ESTADO

from     DADOS_COLUNA_OLAP
sintax是不正确的,我不记得在“as”位置使用什么来为列指定正确的名称

一些好胶水? 谢谢

太多了

太多了


CTAS语法是正确的。你的问题是剪切粘贴错误。替换

 SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMA_ESTADO,
 SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMB_ESTADO

编辑

当我这么做的时候,我应该指出,您正在对同一列进行两次子串,但是使用了不同的别名。你是有意这么做的吗

 SUBSTR( NUMEROA, 1, 2)  AS LOG_NUMA_ESTADO, 
 SUBSTR( NUMEROB, 1, 2)  AS LOG_NUMB_ESTADO
               ^

如果是这样的话,您需要在两个位置顶部修复列名。

CTAS语法是正确的。你的问题是剪切粘贴错误。替换

 SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMA_ESTADO,
 SUBSTR( NUMEROA, 1, 2) ) AS LOG_NUMB_ESTADO

编辑

当我这么做的时候,我应该指出,您正在对同一列进行两次子串,但是使用了不同的别名。你是有意这么做的吗

 SUBSTR( NUMEROA, 1, 2)  AS LOG_NUMA_ESTADO, 
 SUBSTR( NUMEROB, 1, 2)  AS LOG_NUMB_ESTADO
               ^

如果是这样的话,您需要在两个位置都修复列名。

您不记得语法了吗?Oracle参考站点是否已关闭?不可用?你不记得语法了吗?Oracle参考站点是否已关闭?不可用的