Oracle 数据库连接的一些坑
问题:
ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求服务
解决办法:
1 权限 安装文件 Oracle 文件夹设置Authenticated Users用户的完全控制权限
2 环境变量 Path 设为 XXX\Oracle\bin 下
3 连接只需要服务名 账号 密码 不需要ip ip等信息从安装文件 XXX\Oracle\network\admin\tnsnames.ora 获取
问题:
C#使用Oracle.ManagedDataAccess.dll 连接Oracle数据库,获取到的数据,如何是中文会出现乱码的问题
SELECT * FROM NLS_DATABASE_PARAMETERS; --字符集 NLS_CHARACTERSET 为汉字ZHS16GBK或下面的US7ASCII
Environment.SetEnvironmentVariable("NLS_LANG", "AMERICAN_AMERICA.US7ASCII", EnvironmentVariableTarget.Process);
需要注意的是:利用函数进行设置环境变量的操作必须在数据库操作的外边才能生效。
Oracle连接as时查询项需要双引号如HISLISID,条件不需要双引号如001
select ID as "HISLISID",MZHM as "PatientCaseNo",BRXM as "PatientName",
SFZH as "IdentityCardID",BRXZ as "性质",SEX as "XB",
CSNY as "BirthDate",HKDZ as "FamilyAddr",JTDH as "Telephone"
FROM VI_XYTX_MZBRDA where ID = '001'
查询日期
select to_date ('2007-12-20 18:31:34', 'YYYY-MM-DD HH24:MI:SS') from dual
插入日期
to_date ('2007-12-20 18:31:34', 'YYYY-MM-DD HH24:MI:SS')