Oracle INNER JOIN does not work but CARTESIAN join works

2

I'm getting a very weird error. If I write my query using INNER JOIN, like below:

 String query = @"SELECT     *
                  FROM       BKING CCVB
                  INNER JOIN SEM S ON CCVB.BKING_REQ_DTM BETWEEN S.ST_D AND S.END_D";
 OracleCommand dbCommand = new OracleCommand(query, Connection);
 OracleDataAdapter adapter = new OracleDataAdapter(dbCommand);
 OracleCommandBuilder builder = new OracleCommandBuilder(adapter);
 DataTable dt = new DataTable();
 adapter.Fill(dt);
 return dt;

The query fails with the following error message:

{Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-00942: table or view does not exist

But when I change to cartesian join, it is fine:

 String query = @"SELECT     *
                  FROM       BKING CCVB, SEM S 
                  WHERE      CCVB.BKING_REQ_DTM BETWEEN S.ST_D AND S.END_D";
 OracleCommand dbCommand = new OracleCommand(query, Connection);
 OracleDataAdapter adapter = new OracleDataAdapter(dbCommand);
 OracleCommandBuilder builder = new OracleCommandBuilder(adapter);
 DataTable dt = new DataTable();
 adapter.Fill(dt);
 return dt;

Any particular reason why it fails? And how to solve?

c#
oracle
inner-join
asked on Stack Overflow May 28, 2019 by rcs • edited May 28, 2019 by rcs

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0