Oracle SQL Select查询在VB.NET中不起作用在SQL +中运行良好

时间:2016-06-20 16:42:03

标签: vb.net oracle

当我的查询在我的VB应用程序中执行时,我收到以下错误:

ORA-00942: table or view does not exist

我的查询中的所有表名都拼写正确,实际上确实存在。

如果我从我的VB.net应用程序转储查询,然后在Oracle SQL Plus中手动运行查询,它就会执行得很好。

在这两种情况下,我都使用完全相同的凭据登录并选择了相同的数据库。对于我在visual basic中的连接,我使用的是OleDb

在我的visual basic应用程序中,我还运行了一个查询来转储用户可以使用

访问的所有表
select table_name from all_tables

我正在查询的表名出现了。

知道会导致什么原因吗?

SELECT   
    RSS.STEP_STATUS_DATE,                                          
    RSS.VALUE_RECORDED                                    
FROM     
    ITR,                                                           
    REPORT R,                                                      
    INSTRUCTION I,                                                 
    INSTRUCTION_STEP INS,                                          
    REPORT_STEP RS,                                                
    REPORT_STEP_STATUS RSS                                
WHERE    
    ITR.ITR_NO = '1' AND                                         
    I.INSTRUCTION_ID = '12345' AND                                   
    INS.STEP_NO = '2' AND                                        
    R.INSTRUCTION_ID = I.INSTRUCTION_ID AND                        
    RS.REPORT_ID = R.REPORT_ID AND                                 
    RS.INSTRUCTION_STEP_ID = INS.INSTRUCTION_STEP_ID AND           
    RSS.REPORT_STEP_ID = RS.REPORT_STEP_ID AND                     
    RSS.MEASUREMENT_NAME = 'ESN'

我的视觉基本代码如下:

strQuery =  "SELECT   RSS.STEP_STATUS_DATE,                                 " +
             "         RSS.VALUE_RECORDED                                    " +
             "FROM     ITR,                                                  " +
             "         REPORT R,                                             " +
             "         INSTRUCTION I,                                        " +
             "         INSTRUCTION_STEP INS,                                 " +
             "         REPORT_STEP RS,                                       " +
             "         REPORT_STEP_STATUS RSS                                " +
             "WHERE    ITR.ITR_NO = '%01' AND                                " +
             "         I.INSTRUCTION_ID = '%02' AND                          " +
             "         INS.STEP_NO = '%03' AND                               " +
             "         R.INSTRUCTION_ID = I.INSTRUCTION_ID AND               " +
             "         RS.REPORT_ID = R.REPORT_ID AND                        " +
             "         RS.INSTRUCTION_STEP_ID = INS.INSTRUCTION_STEP_ID AND  " +
             "         RSS.REPORT_STEP_ID = RS.REPORT_STEP_ID AND            " +
             "         RSS.MEASUREMENT_NAME = '%04'"

1 个答案:

答案 0 :(得分:0)

我正在看这部分(和其他人一样):

RSS.MEASUREMENT_NAME = '%04'

我希望你的意思是:

RSS.MEASUREMENT_NAME LIKE '%04'

当我在这里时,几乎没有人再使用“A,B”连接语法。这是非常过时的,并且可能导致连接条件应用于错误表的错误,这样查询不会返回任何结果......换句话说,它甚至可能导致您现在遇到的问题。