当我的查询在我的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'"
答案 0 :(得分:0)
我正在看这部分(和其他人一样):
RSS.MEASUREMENT_NAME = '%04'
我希望你的意思是:
RSS.MEASUREMENT_NAME LIKE '%04'
当我在这里时,几乎没有人再使用“A,B”连接语法。这是非常过时的,并且可能导致连接条件应用于错误表的错误,这样查询不会返回任何结果......换句话说,它甚至可能导致您现在遇到的问题。