当Oracle数据库链接使用ODBC连接到Excel时,我有“标识符的名称长度超过最大值”

我尝试使用ODBC和数据库链接从Excel中获取数据。 我使用这样的SQL:

Select * From A222$@TEST2 

TEST2 – Excel数据库链接的名称,以及A222 – Excel文件的工作表名称。

但是,因为在Excel的第一行,我有很大的string值,如A1234567890_B1234567890_C1234567890_D1234567890_E1234567890转换为非常大的列名称,当我尝试像这样使用sql:

  CREATE VIEW VIEW2 AS Select * From A222$@TEST2; // or Select A1234567890_B1234567890_C1234567890_D1234567890_E1234567890 as c1 from A222$@TEST2; // or Select "A1234567890_B1234567890_C1234567890_D1234567890_E1234567890" as c1 from A222$@TEST2; 

我得到以下错误

  ORA-01948: identifier's name length (31) exceeds maximum (30) ORA-00972: identifier is too long 

而且我无法更改此Excel文件或创build此文件的临时副本。

这是可能的:

  1. 使用Excel列的名称,如A1,AB1,Z1,而不是从ODBC Excel的SQL查询中的第一行的值?

  2. 或者在不更改此Excel文件或创build此Excel文件的临时副本的情况下解决此问题?

先谢谢你!

我不知道我是否完全理解这个问题。 正如甲骨文所指出的,这个count#of#people#how#live#in#San#francisco 但是,你真的想要一个列名,特别是如果它是无效的?

我猜你想要一个string不是一个列名,所以使用单引号:

 Select 'count#of#people#how#live#in#San#francisco' as c1 from A222$@TEST2; 

另外,每个select只有一个。