Unity 连接Oracle数据库

1.安装/解压oracle客户端(oracle instantclient_11_2),设置环境变量

path添加oracle客户端安装目录

TNS_ADMIN(增加)             E:/oracle/product/10.2.0/client_1       (oracle客户端安装目录,可不设置)

NLS_LANG    (增加)               SIMPLIFIED CHINESE_CHINA.ZHS16GBK(否则查询中文失败)

2.复制unity 安装文件夹内的system.data.dll ;system.data.oracleclient.dll, System.EnterpriseService.dll,system.security.dll;和oracle安装文件夹ora/win64下的oci.dll;ociidbc11.dll;至u3d工程plugins下即可;编辑器环境菜单脚本形式执行无报错,读取数据;build为测试

3.连接测试

string connString =  "User ID=sys;Password=root;DBA Privilege=SYSDBA;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.220)(PORT = 1521)))  (CONNECT_DATA =(SERVICE_NAME = orcl)))"
 

using System.Data;
using System.Data.Oracleclient;
using System.IO;
using System.Collections;
using System.Diagnostics;

namespace OracleHelper
{
    public class OracleHelper
    {
        private static string connStr = "User Id=admin;Password=123;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))";

        #region 执行SQL语句,返回受影响行数
        public static int ExecuteNonQuery(string sql, params OracleParameter[] parameters)
        {
            using (OracleConnection conn = new OracleConnection(connStr))
            {
                conn.Open();
                using (OracleCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        #endregion
        #region 执行SQL语句,返回DataTable;只用来执行查询结果比较少的情况
        public static DataTable ExecuteDataTable(string sql, params OracleParameter[] parameters)
        {
            using (OracleConnection conn = new OracleConnection(connStr))
            {
                conn.Open();
                using (OracleCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    DataTable datatable = new DataTable();
                    adapter.Fill(datatable);
                    return datatable;
                }
            }
        }
        #endregion
    }
}

4. system.data.oracleclient.dll连接似乎不支持“”DBA Privilege=SYSDBA”

参考1.https://blog.csdn.net/qq_36801146/article/details/80511656

2. net-framework-data-provider-for-oracle

3.http://www.manew.com/blog-20937-1389.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值