code_junkie

Why does Oracle require TO_NCHAR when binding SQL_C_WCHAR text via ODBC

Nov 12th, 2011
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. SELECT (CASE profile WHEN ? THEN 1 ELSE 2 END) AS profile_order
  2. FROM engine_properties;
  3.  
  4. SELECT (CASE profile WHEN '_default' THEN 1 ELSE 2 END) AS profile_order
  5. FROM engine_properties;
  6.  
  7. SELECT (CASE profile WHEN TO_NCHAR('_default') THEN 1 ELSE 2 END) AS profile_order
  8. FROM engine_properties;
  9.  
  10. SQLPrepare(SELECT (CASE profile WHEN ? THEN 1 ELSE 2 END) AS profile_order
  11. FROM engine_properties;) = SQL_SUCCESS
  12. SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_WCHAR,
  13. SQL_VARCHAR, 32, 0, "_default", 18, 16) = SQL_SUCCESS
  14. SQLExecute() = SQL_ERROR
  15. SQLGetDiagRec(1) = SQL_SUCCESS
  16. [SQLSTATE: HY000, NATIVE: 12704, MESSAGE: [Oracle][ODBC]
  17. [Ora]ORA-12704: character set mismatch]
  18. SQLGetDiagRec(2) = SQL_NO_DATA
  19.  
  20. SQLPrepare(SELECT (CASE profile WHEN ? THEN 1 ELSE 2 END) AS profile_order
  21. FROM engine_properties;) = SQL_SUCCESS
  22. SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_WCHAR,
  23. SQL_VARCHAR, 32, 0, "_default", 18, 16) = SQL_SUCCESS
  24. SQLExecute() = SQL_ERROR
  25. SQLGetDiagRec(1) = SQL_SUCCESS
  26. [SQLSTATE: HY000, NATIVE: 12704, MESSAGE: [Oracle][ODBC]
  27. [Ora]ORA-12704: character set mismatch]
  28. SQLGetDiagRec(2) = SQL_NO_DATA
  29.  
  30. SQLPrepare(SELECT (CASE profile WHEN TO_NCHAR(?) THEN 1 ELSE 2 END) AS profile_order
  31. FROM engine_properties;) = SQL_SUCCESS
  32. SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_WCHAR,
  33. SQL_VARCHAR, 32, 0, "_default", 18, 16) = SQL_SUCCESS
  34. SQLExecute() = SQL_SUCCESS
  35. SQLNumResultCols() = SQL_SUCCESS (count = 1)
  36. SQLFetch() = SQL_SUCCESS
Add Comment
Please, Sign In to add comment