Diferenças em declarações diretas preparado versus usar ODBC para Oracle
-
03-07-2019 - |
Pergunta
Eu estou usando um banco de dados Oracle com um diferente de intercalação a minha língua OS. Eu estou acessando o banco de dados usando o driver ODBC. Quando eu preparar uma declaração (por exemplo, um "SELECT * FROM x where =?"), Que envolve caracteres não-ASCII especiais apoiados pelo agrupamento do DB, eu estou achando a linha de dados com os personagens. Quando eu executar a selecionar diretamente com o argumento na cadeia de SQL, a linha de dados não foi encontrado.
Solução
palpite Pure da minha parte, mas pode ser porque o computador cliente não está codificando a cadeia de SQL com o argumento escrito em-lo corretamente. Eu acho que se o seu cliente está definido para uma configuração regional diferente do que o agrupamento DB, a matriz de caracteres contendo a instrução select que é enviado para a Oracle iria conter "incorreto" bytes onde os personagens funk originais foram localizados - Oracle iria interpretar estes como alguns caráter diferente daquele que originalmente enviados (fazendo com que a linha para não ser encontrado).
Existe algum motivo você não pode apenas usar a abordagem parametrizada (uma vez que está a funcionar correctamente)? ??