Olá,
temos uma entidade em nosso modelo de cds que contém uma barra diagonal '/' em um nome de coluna. No passado, isso foi resolvido no compilador para lidar com isso, mas agora está causando problemas ao carregar dados através de um arquivo csv ao executar o servidor com 'cds watch'. Estamos usando a versão NodeJs do CAP.
O erro é:
[ERROR] SQLITE_ERROR: perto de "/": erro de sintaxe
Abaixo (uma versão simplificada) o modelo e o csv, e também algumas coisas que já tentei.
Esperançosamente, alguém tem uma ideia de como resolver isso.
Saudações Ramon
ps
: Eu tive o mesmo problema antes ao usar a variante JAVA do CAP e pude resolver sobrescrevendo a classe
com.sap.cds.impl.sql.
InsertStatementBuilder
e adicionando aspas duplas ao redor dos nomes das colunas
exemplo simplificado do modelo
entidade![TEST]{
chave ![id] : String(3);
![nome] : String(50);
![/abc/def] : String(12);
![cidade] : String(50);
}
arquivo csv:
id;nome;/abc/def;cidade
1;John;zzz;Nova Iorque
2;Pete;yyy;Paris
Coisas que tentei:
1) colocar aspas simples/duplas ao redor do nome da coluna no csv.
2) criar um 'Select as' acima da entidade TEST e dar ao nome da coluna com barra diagonal um alias assim:
entidade![TEST_1] como select from [TEST]{
chave![id] : String(3);
![nome] : String(50);
![/abc/def] : String(12) como abc_def;
![cidade] : String(50);
}
com csv:
id;nome;abc_def;cidade
1;John;zzz;Nova Iorque
2;Pete;yyy;Paris