模式

时间:2018-06-27 13:22:11

标签: vb.net oracle

我在查询模式时在显示的Oracle视图中的列上遇到问题。实际上,当我列出它时,它显示为第2列。

该错误表明ORA-00904标识符无效,根据我的阅读,该标识符表示我所引用的列名不正确,但是我直接从Oracle Developer,MSAccess和datareader.Schema复制了该名称。进入该列似乎没有任何问题。

如果我仅使用MSAccess中的链接表查询该列,则数据也会显示出来。我见过的所有示例都引用了类似的问题,其中字段的键入不正确,尽管我承认仍然有可能,但鉴于上述列列表的直接复制,在这种情况下似乎不太可能。

其他解决方案提到将名称用双引号引起来,这在VB.NET中是不确定的,甚至不确定是否必要。

以下代码:

'Open And Query 
oledbCon.ConnectionString = strCon
oledbCon.Open()
oledbCom.Connection = oledbCon
oledbCom.CommandType = CommandType.Text
oledbCom.CommandText = "SELECT AREA_CODE FROM CSITAPPS.DAYSIN_1057"
oledbda.SelectCommand = oledbCom
oledbda.Fill(gdt)

table

1 个答案:

答案 0 :(得分:0)

我能够找到与同事合作几天的解决方案。该问题源于Oracle列引用区分大小写的事实。因此,需要双引号,对于VB.net来说,给定引号指示并封装String条目是棘手的。解决方案是将字符串断开并将chr(34)连接到其中。结合确保列参考案例与表中的正确匹配,可以实现。

"SELECT " & Chr(34) & "Area_Code" & Chr(34) & " FROM CSITAPPS.DAYSIN_1057 ORDER BY " & Chr(34) & "Area_Code" & Chr(34) & " DESC;"