Thread: Regarding boolean datatype
Hello all, this is my first interaction with this list. I have a problem. I was using MSSQL Server as db, now i m changing to Postgres. I know that the bit type in MSSQLserver is boolean in Postgres. So, i have the following query and getting the following error:Why??? strSql = " Update parts Set name = ? , description = ? world_market = ?, part = ? , unit_of_measure = ? Where depot= ?; prepStmt = conn.prepareStatement(strSql); prepStmt.setString( 1, Pname) ; prepStmt.setString( 2, Pdesc) ; prepStmt.setBoolean(3, BoolWM) ; prepStmt.setString( 4, strPart); prepStmt.setString( 5, strUoM); prepStmt.setString( 6, strDepot); This is how i m assigning value to BoolWM, boolean BoolWM ;if ( WM.equals("False")) { BoolWM = false ; } else { BoolWM = true; } Error is::: SQLError ERROR: Unable to identify an operator '~~' for types 'boolean' and 'unknown' You will have to retype this query using an explicit cast I know, somewhere i m making mistake, but where?? Moreover, if i m updating the database with the above query, the db is giving the error and deleting the data from the db. As per my understanding it should automatically rollback. What is the problem??? What are the other coding rules for Postgres?? Please guide. Thanks and regards __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com
On Thursday 05 Dec 2002 9:11 am, kanika singh wrote: > Hello all, > > this is my first interaction with this list. I have a > problem. I was using MSSQL Server as db, now i m > changing to Postgres. I know that the bit type in > MSSQLserver is boolean in Postgres. There's also a bit type if that's really what you want, but in this case I think boolean is right. PS - if you get error messages again, please let us know what version and client you are using (e.g. PostgreSQL v7.2.1 from jdbc) > strSql = " Update parts Set name = ? , description = ? > world_market = ?, part = ? , unit_of_measure = ? > Where depot= ?; > > prepStmt = conn.prepareStatement(strSql); > prepStmt.setString( 1, Pname) ; > prepStmt.setString( 2, Pdesc) ; > prepStmt.setBoolean(3, BoolWM) ; [snip] > SQLError ERROR: Unable to identify an operator '~~' > for types 'boolean' and 'unknown' > You will have to retype this query using an explicit > cast Are you sure this error goes with this query? I don't see any use of LIKE here (which is what ~~ does for you). > I know, somewhere i m making mistake, but where?? > Moreover, if i m updating the database with the above > query, the db is giving the error and deleting the > data from the db. As per my understanding it should > automatically rollback. What is the problem??? I find this unlikely. If Postgresql was in the habit of deleting data without being asked to there'd be mention of it. I suggest you turn query logging on (in your postgresql.conf file) while you try to reproduce this. That will show you what is really happening. > What are the other coding rules for Postgres?? Manuals are at http://www.postgresql.org/ Extra info at http://techdocs.postgresql.org/ (including some online books) Mailing lists you know about. -- Richard Huxton
Thanks for the reply. I will definitely look into it. and will come back to you. thanks and regards, Kanika --- Richard Huxton <dev@archonet.com> wrote: > On Thursday 05 Dec 2002 9:11 am, kanika singh wrote: > > Hello all, > > > > this is my first interaction with this list. I > have a > > problem. I was using MSSQL Server as db, now i m > > changing to Postgres. I know that the bit type in > > MSSQLserver is boolean in Postgres. > > There's also a bit type if that's really what you > want, but in this case I > think boolean is right. > PS - if you get error messages again, please let us > know what version and > client you are using (e.g. PostgreSQL v7.2.1 from > jdbc) > > > strSql = " Update parts Set name = ? , description > = ? > > world_market = ?, part = ? , unit_of_measure = ? > > Where depot= ?; > > > > prepStmt = conn.prepareStatement(strSql); > > prepStmt.setString( 1, Pname) ; > > prepStmt.setString( 2, Pdesc) ; > > prepStmt.setBoolean(3, BoolWM) ; > [snip] > > SQLError ERROR: Unable to identify an operator > '~~' > > for types 'boolean' and 'unknown' > > You will have to retype this query using an > explicit > > cast > > Are you sure this error goes with this query? I > don't see any use of LIKE here > (which is what ~~ does for you). > > > I know, somewhere i m making mistake, but where?? > > Moreover, if i m updating the database with the > above > > query, the db is giving the error and deleting the > > data from the db. As per my understanding it > should > > automatically rollback. What is the problem??? > > I find this unlikely. If Postgresql was in the habit > of deleting data without > being asked to there'd be mention of it. I suggest > you turn query logging on > (in your postgresql.conf file) while you try to > reproduce this. That will > show you what is really happening. > > > What are the other coding rules for Postgres?? > > Manuals are at http://www.postgresql.org/ > Extra info at http://techdocs.postgresql.org/ > (including some online books) > Mailing lists you know about. > > -- > Richard Huxton > > ---------------------------(end of > broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com