weird subselect behaviour

myndian.de

Donnerstag, 2. Februar 2006

weird subselect behaviour

This week we had a very confusing problem with a SQL subselect in a JDBC PreparedStatement for MS SQL Server. I looks like the following:

UPDATE table_a
SET intCol_A = (SELECT intCol_B
FROM table_b
WHERE strCol_B = ?)
WHERE strCol_A = ?


Very simple and easy to understand. It’s works fine until the first question mark was replaced by the null value. Boom!

strCol_B has no null value and should not have one. So logically the subselect should not select anything and return the null value. But it does not. It selected always the same value from strCol_B! (Not intCol_B!) A very weird behaviour. The string was a guid made of capitals and digits, so it could not be casted as an integer, which leads to an error.

How we fixed this? Instead of null we now use a string strCol_B can not contain: $NIL%. The subselect now does not select anything and returns the null value. All fine now.

Weird, isn’t it?
Geschrieben von Jörg in Softwaretechnik um 14:16 | Kommentare (0) | Trackbacks (0)
Tags für diesen Artikel: database, java, jdbc, ms sql server, sql
Artikel mit ähnlichen Themen:
  • Premature optimization and object orientation
  • POJOs, POGOs und POCOs
  • View technologys for generated web layers
  • More about Groovy SQL Maps
  • Make your SQL Maps Groovy!
  • 3644 views in one empty ORACLE database
  • last language war language trolling
  • Drop all tables
  • Dynamic two dimensional array in Java
  • static vs. dynamic typed configuration

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Noch keine Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss um dieses Verfahren anzuwenden.
CAPTCHA

Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Suche

Inhalt

Startseite
Galerien
Impressum

Kategorien

  • XML Alltag
  • XML Internet
  • XML Musik
  • XML Politik
  • XML Reise
  • XML Softwaretechnik
  • XML Sonstiges
  • XML Visuelles

Alle Kategorien

Archive

Februar 2012
Januar 2012
Dezember 2011
Das Neueste ...
Älteres ...

Blog abonnieren

XML RSS 2.0 feed
ATOM/XML ATOM 1.0 feed
XML RSS 2.0 Kommentare

Login

Verwaltung des Blogs

Login

Aktuelle Einträge

Netzwerkkultur verändert die Gesellschaft
Dienstag, 17. November

Absolute and relative date and time
Sonntag, 18. Oktober

Oren Lavie - Her Morning Elegance
Dienstag, 6. Oktober

Twitter & Blogroll
Samstag, 8. August

Read It Later: Round-Trip-Integration mit Firefox und Google-Reader
Montag, 3. August

Blogroll

* Jörg bei Twitter
* Jens bei Twitter
* Nils bei Twitter

* Beetlebum
* a life less ordinary?
* Martin Fowler's Bliki
* Springify
* BILDblog
* Plazeboalarm
* LawBlog
* ADOM Blog
* Being busy
* Dr. Gero Presser

Links

* Heise
* The Scala Programming Language
Nils' Fotos bei fotocommunity.de
Jogi auf Qype
Get Firefox!
Use OpenOffice.org

Heise News

* AMD FirePro V3900: Profi-Grafikkarte für Einsteiger

* Auch Tschechien setzt ACTA-Ratifizierung aus

* Datenschutz-Zertifikat für De-Mail-Lösung von Mentana-Claimsoft

* Brüssel will schärfer gegen Copyrightverstöße im Web vorgehen

* Corning und Samsung wollen gemeinsam OLEDs fertigen

kostenloser Counter