1. 关于OCILIB字符集的设置
只需设置NLS_LANG环境变量:
我在项目中的情形是这样的:前端数据源(UTF8)-> 后台服务-> Oracle数据库(GBK),后台服务使用OCILIB。
当后台服务运行在Windows(GBK),需要设置 NLS_LANG=SIMPLIFIED CHINESE_CHINA.UTF8;
当后台服务运行在Linux(UTF8),需要设置 NLS_LANG=SIMPLIFIED CHINESE_CHINA.UTF8;
结论:由此可见,只需将NLS_LANG环境变量设置成与数据源相同的字符编码即可
备注:
NLS_LANG=语言 地域.字符集
查询Oracle字符集的sql:
server端:select * from sys.nls_database_parameters
client端:select userenv('language') from dual
2. OCILIB和BOOST同时使用时
注意:
一定要先包含boost头文件,再包含ocilib头文件。
因为存在boost中的类和ocilib中的宏同名的情况,如果先包含ocilib头文件,则boost中的同名类的无法使用,编译错误。
转载请注明原文地址: https://ju.6miu.com/read-13657.html