原来一直用SQLServer,最近开始用Oracle了。转型当中遇到了很多问题,随着遇到的问题越来越多,我会把自己的心得不断地补充,以备不时之需。

一、一上来遇到的就是.net 调用Oracle 存储过程、函数困难,关于这方面的常见问题,请参照这位兄弟的博客:

http://cwbboy.cnblogs.com/archive/2006/03/22/356017.html

二、在使用Oracle的过程中发现,Oracle的对于SQL语句的检查要比SQLServer严格的多,比如:

1、在Oracle和SQLServer中,虽然建表的时候不允许有重复的字段名,但是在查询语句中如果使用了重复别名,情况就不一样了,比如:
      SELECT A.* FROM (
      SELECT ID,code as 代码,cn_name as 中文名称,code as 代码,cn_name as 中文名称 FROM BS_PERSON 
      ) A

在SQLServer中执行成功,而在Oracle中执行则会提示错误:ORA-00918: column ambiguously defined,意思是列没有明确定义。为什么Oracle中会这样呢?原来,在嵌套查询中,外层查询会根据子查询的查询结果生成临时表A,又因为在表中是不允许有重复字段的,Oracle对于这点检查十分严格,SQLServer只对实际的物理表进行检查。所以会有此差异。

三、Oracle10g安装过程中"无法确定主机的IP地址时产生该异常错误" 的解决办法:
      1、原来Oracle10g以后版本在安装前会先检测系统的IP地址,而如果通过DHCP动态获取IP地址的机器,在解析IP地址时Oracle会认为是不确定的IP地址,就会出现上述异常。经修改c:\windows\system32\drivers\etc\hosts文件来手动解析后安装成功,文件内容如下:
      127.0.0.1 localhost
      动态获取的IP地址 计算机机器名

2、单机版上安装Oracle的解决办法:

到控制面板/添加硬件,在向导中选择“是,已经连接了此硬件”→“网络适配器”→“Microsoft Loopback Adapter”,添加完成,你会发现新建了个假的“本地连接”,为得是骗下Oracle。把这个本地连接的IP设置一下(例如192.168.1.1)。这时,再回去重新让Oracle检测一遍,通过!。

四、ORA-12514:TNS无法识别当前请求的服务名

网上的解决办法:修改Listener.ora文件,例如:

SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = PLSExtProc) 
      (ORACLE_HOME = G:\oracle\product\10.2.0\db_1) 
      (PROGRAM = extproc) 
    ) 
  (SID_DESC = 
    (GLOBAL_DBNAME = ORCL) 
    (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)   
    (SID_NAME = ORCL) 
    )
 
)
LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 机器的IP地址)(PORT = 1521)) 
    ) 
  )

黑体字部分为要在Listener.ora文件中添加的部分,红色为需要注意修改的部分。

然后再重起Oracle服务和监听服务,注意先后顺序。

这是通常情况的下的解决办法,但我的情况很特殊。由于我的服务器是通过DHCP动态获取IP,服务器IP变了后,通过上述方式修改,鼓捣半天也不行,令我百思不得其解。后来重装了Oracle,遇到了问题三,从而辗转发现原来是Oracle无法自动识别动态IP在作祟。虽然费了一番大周折,但总算问题解决了。

当然可能还有很多其他的原因。就我来讲遇到的情况是这样的。。。。。。

以上未完待续,前后顺序很乱,随学随记,最后在整理顺序……

转载于:https://www.cnblogs.com/eb5mj/archive/2011/01/28/1947010.html

.net 调用Oracle 的一些总结。相关推荐

  1. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)

    我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...

  2. mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析

    mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析 参考文章: (1)mybatis 调用 oracle 存储过程 select in ...

  3. java调用存储过程 oracle_java调用oracle存储过程

    java调用oracle存储过程 java代码 Map param = new HashMap(); param.put("in_str", "1,2,3,4" ...

  4. C#调用Oracle存储过程分页

    直接调用Oracle中的存储过程完成对表的分页,对代码封闭程度高,执行高效.以下为C#分页类代码,包括Oracle数据库 端存储过程PLSQL代码. //    程序调用示例: // int tota ...

  5. Java调用Oracle存储Package

    Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...

  6. .NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)

    今天一个项目组的朋友问及:如何在.NET中调用Oracle的存储过程,并以数组作为参数输入. Oracle的PL/SQL非常强大,支持定长数组和变长数组,支持任何自定义数据类型.通过阅读ODP的文档, ...

  7. C#调用ORACLE存储过程返回结果集及函数

    ORACLE段: 首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集. 1:建立PACKAGE: CREATE OR REPLACE package ...

  8. spring+springMvc+mybatis 调用oracle 存储过程

    最近在项目中遇到在mybatis中调用oracle存储过程的问题,网上各种查询,最终解决了问题,在我们项目中我只需要oracle 的存储过程返回一个字符串用来存入数据库作为表数据的主键, 接下来整理代 ...

  9. java调用oracle的函数,从Java调用Oracle函数

    我有以下功能规格: FUNCTION FUNC_GET_SOMETHING_FROM_DATABASE ( IN_parameter1 IN VARCHAR2, IN_parameter2 IN VA ...

  10. linux系统下PHP无法调用oracle数据库的解决方法

    我们有项目php调用oracle 在正线上环境不能运行成功.经调试通过使用如下方式: $param = '00000999';$en = 'cn';@passthru("/usr/local ...

最新文章

  1. sse php,sse.php · Gitee 极速下载/modphp - Gitee.com
  2. WINCE下SOS驱动开发
  3. 关于Java的10个谎言
  4. @codeforces - 1106F@ Lunar New Year and a Recursive Sequence
  5. WPF-21:WPF实现仿安卓的图案密码键盘(初级)
  6. 防火墙简介(二)——firewalld防火墙
  7. mapgis编辑属性结构编辑不了_MapGIS67操作手册(3-17)MapGIS67编辑线属性结构的方法...
  8. AntD 官网样例 InputRef报错原因
  9. 2021-08-26
  10. Laravel最佳实践--根据搜索参数为Model查询应用不同的Where条件
  11. IOS开发中--点击imageView上的Button没有任何反应
  12. 服务发现系统consul-HTTP API
  13. linux查看都哪口状态,linux c 查看网口状态
  14. API文档和代码片段管理器:​​​​Dash
  15. 基于RAM的雷达线性调频信号产生
  16. 计算机会计信息系统中凭证日期应该是,《电算化会计》期中考试试题.doc
  17. 在1分钟K线图中显示分时图均价线的公式
  18. 获取jpg(或jpeg)图片中的详细信息(EXIF信息)
  19. java如何用雪花算法批量生成唯一编码(保证位数不过长)?
  20. uni-app 应用换肤功能

热门文章

  1. jsweet下载编译
  2. mvn 错误: @param 未找到
  3. top 显示按照内存、CPU排序
  4. 全网首发:GB18030制定者站出来,$为什么要显示为¥,给大家解释一下
  5. 管理感悟:绝不容忍有问题没行动
  6. SHELL下根据进程号得到内存,并截取为整数
  7. 管理感悟:当好主管的关键
  8. 管理感悟:能图像不文字
  9. java lambda 原理_Java Lambda表达式原理及多线程实现
  10. 读取ANSYS结果文件中的数据C语言,[转载][转载]如何在ANSYS中读入txt文件的数据