• .net人连接oracle数据库难吗


    以前有个工具是用asp.net做的,连接的是sql server数据库,现今的项目也有个类似的功能需要做,但是数据库采用的是oracle数据库,小工具吗,没有必要整什么所谓的多数据库兼容,于是采取简化的方案,直接把.net用于操作sql server数据库的那一套全都换成了操作oracle数据库的那一套.net类,引用的是Framework自带的System.Data.OracleClient,连接字符串也换成了oracle风格的

        <connectionStrings>
                   <add name="ConnectionString" connectionString="Data Source=IP或机器名/数据库;Persist Security Info=True;User ID=用户名;Password=密码;Unicode=True"/> 
        
        </connectionStrings>

    一启动,居然出现类似下面的错误

          "System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本"

    难道我本地要安装Oracle 客户端软件,应该不用吧,我只是想连接一下而已;于是baudu、google一把,有的建议用oracle官方的ODP.net,登陆官方一看不要紧,相关工具要200多M,天哪,难道就没有点省事的方法吗,于是继续找查询方案,在csdn上找到了答案,即需要把两个dll(download)拷贝到%windir%\system32下即可。

    再次连接,果然可以啦,但是又有一些问题,即sql server与oracle的sql语句不兼容问题:

    1、top 10

    SQL Server
    Select top 10 colA from tableA

    放在oracle环境下运行不同,报类似“找不到from”之类的错误,错误提示真不友好!后来在网上找了下,可以变成类似下面的方案。

    oracle
    Select colA from TableA where rownum<=10

    2、SQL Server为避免列明与关键字重复可以加“[]”,比如[name],这个东西在oracle中也不承认,需要把“[]”去掉。
    3、SQL server中的“+”连接字符串

    Select colA+":"+colB as AB from TableA

    这个在oracle中也不行,需要写成

    select colA || ':' || colB as AB from TableA

    这些都是小问题,最主要的是搞定连接那一步。

  • 相关阅读:
    java1.8版本的HashMap源码剖析
    java并发包——阻塞队列BlockingQueue及源码分析
    java多线程(二)-线程的生命周期及线程间通信
    单例设计模式的回顾。。。。
    java多线程的(一)-之java线程的使用
    根据IO流源码深入理解装饰设计模式使用
    IO流回顾与总结第一篇之字节流与字符流的操作。。。。。
    java中的异常类型以及区别????
    设计模式之装饰设计案例
    集合源码(一)之hashMap、ArrayList
  • 原文地址:https://www.cnblogs.com/xqlcrystal/p/Oracle.html
Copyright © 2020-2023  润新知