Win a copy of Transfer Learning for Natural Language Processing (MEAP) this week in the Artificial Intelligence and Machine Learning forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Tim Cooke
  • Paul Clapham
  • Devaka Cooray
  • Bear Bibeault
  • Junilu Lacar
  • Knute Snortum
  • Liutauras Vilda
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Piet Souris
  • salvin francis
  • Carey Brown
  • Frits Walraven

ODBC and Oracle

Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello everyone,

I am trying to create an application with ODBC compliant code for DB business logic is in c#  DBs to use are oracle 12c and 11g and MSSQL

I am using ADO.NET, OLEDB, ODP.NET , ODBC etc.

Problem is when i try to use the ODBC code with oracle 12C where i am getting cast errors and other errors,I have tried IDbConeection, IDbCommand etc but they have a problem in case of Oracle (Ref Cursor) and data types of different databases and also there is problem with the DBTypes because they are enum define differently with different data providers.

for example, for boolean, the links below show i can use SQL_BIT as ODBC type but it's not even showing up in the intellisense

Can I use the same code against the Oracle database, without code change? Because some of the datatypes in Oracle and SQL Server are quite different,  and code also throws error.

Is there any way to achieve this? Some link or guide would be appreciated.

here is below example it is working in MSSQL but its not working with oracle database . it gives me invalid datatype error of boolean.

string strQuery = "SELECT remember_me, forgot_password, throttle_auth, maximum_attempts, company_name FROM tbl_settings";
               var ds = dbManager.GetDataSet(strQuery, CommandType.Text,null);
              ds = DataControl.GetDataSet(strQuery);
               if (ds.Tables[0].Rows.Count > 0)
                   if (bool.Parse(ds.Tables[0].Rows[0]["remember_me"].ToString()) == true)
                       divRememberMe.Visible = true;
                       rememberMe = true;
                       divRememberMe.Visible = false;
                       rememberMe = false;

Saloon Keeper
Posts: 11882
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As far as I can tell, Oracle doesn't have booleans.

First converting a field to string and then parsing it doesn't really make sense. Parsing also expects the parsed string to be in the correct format for the expected data type, so if you parse "1" it won't lead to the boolean value true.

Instead of converting the value from the database to string, see if you can use Convert.ToBoolean() instead.
Thanks tiny ad, for helping me escape the terrible comfort of this chair.
Two software engineers solve most of the world's problems in one K&R sized book
    Bookmark Topic Watch Topic
  • New Topic