Domanda

Sto usando un database Oracle con regole di confronto diverse dal mio linguaggio OS. Sto accedendo al database utilizzando il driver ODBC. Quando preparo un'istruzione (ad esempio un " select * da x dove =? & Quot;), che coinvolge caratteri speciali non ASCII supportati dalle regole di confronto del DB, trovo la riga di dati con i caratteri. Quando eseguo la selezione direttamente con l'argomento nella stringa sql, la riga di dati non viene trovata.

È stato utile?

Soluzione

Indovina da parte mia, ma potrebbe essere perché il tuo computer client non sta codificando la stringa sql con l'argomento scritto correttamente. Penso che se il tuo client è impostato su un'impostazione regionale diversa rispetto alle regole di confronto DB, l'array di caratteri contenente l'istruzione select che viene inviata a Oracle conterrebbe "errato". byte in cui si trovavano i caratteri funky originali - Oracle li interpreterebbe come un personaggio diverso da quello che hai inviato originariamente (facendo sì che la riga non fosse trovata).

C'è qualche motivo per cui non puoi semplicemente usare l'approccio parametrizzato (poiché funziona correttamente)? ??

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top