将实朴主流程移植到九安的过程中遇到的问题及解决方法

  经过一个星期的努力,已完成将实朴主流程移植到九安的工作任务,期间遇到了不少问题。由于是新入职的新手,遇到的问题都是第一次接触到的,通过向老同事虚心讨教,基本上都找到了解决的方法。现将我遇到的问题及解决的方法大致罗列如下:

  一、进入StarLims时报错

  ① 报错信息:ORA-01033:Oracle initialization or shutdown in progress

    报错原因:Oracle实例没有启动

    解决方法:

      <1> 进入SQL Plus,执行命令:sqlplus /nolog

       

      <2> 执行命令:conn sys/lims as sysdba;,以系统管理员(sysdba)身份连接数据库

       

      <3> 执行命令:recover database;,进行介质恢复

       

      <4> 执行命令:alter database open;,打开数据库

       
      <5> 问题已解决。重新进入StarLims即可。

  ② 报错信息:ORA-27101 Shared memory realm does not exist

    可能原因: 非正常关闭数据库

    解决方法: 

      <1> 进入cmd,执行命令:lsnrctl start,启动Oracle监听

       

      <2> 执行命令:sqlplus /nolog进入sqlplus

       

      <3> 执行命令:conn / as sysdba以系统管理员身份进行登录

       

      <4> 执行命令:startup启动例程

       

      <5> 问题解决。

  ③ 报错信息:ORA-12518 TNS:监听程序无法分发客户机连接

    可能原因: 未知

    解决方法(视情况):进入服务管理,重启Oracle相关服务。

       

 

  ④ 报错信息:SQL error: ORA-12541: TNS: 无监听程序

            SQL stmt: Select VERSION from DATABASE_VERSION where ORIGREC = (select max(origrec) from DATABASE_VERSION)

   可能原因: 1. OracleOraDb11g_home1TNSListener  

         2. 主机名与Oracle Net Manager中的配置的地址的主机名不一致

   解决方法: <1>  开始--》运行--》services.msc,找到OracleOraDb11g_home1TNSListener 服务,并重启。如果还是不行,看第<2>步

         <2> 进入Oracle Net Manager,将服务名和监听程序的地址的主机名与计算机主机名一致,重启OracleOraDb11g_home1TNSListener 服务

  

 

  二、StarLims设计器报错

  ① 报错信息: Exception of type: SSLRunException
                             Description: Unknow DataSource Id: 35FDAA13-5E45-49C1-9C30-E8B05CCEF92B
          Location: _GetData
          Code: 1002

    报错原因: 找不到某个DataSource脚本

    解决方法: 每一个DataSource脚本对应唯一的DataSource Id,需要根据DataSource Id找到使用此脚本的源(可能是某个控件的

                            data属性或者DataGrid的   某个字段的data属性)即可。

      <1> 在报错信息所在的Form文件名上按住shift双击,打开解析出来的此Form对应的xml文件

      <2> Ctrl + F调出查找窗口,查找报错信息中的DataSource Id

      <3> 找到此DataSource Id所在行的根节点即可找到使用此脚本的源

      <4> 更改找到的源的data属性即可。

  ② 报错信息: Script not found!

          Name: CLIENT_PROJECT.GET_PROECTS
          Type: DataSource

    报错原因: DataSource脚本不存在

    解决方法: 检查是否拼错DataSource脚本名称,或者在对应Form的DataSource中添加相应的脚本即可。

  

  ③ 报错信息: Script not found!

          Name: CLIENT_PROJECT.urrentUserIsRASManager
          Type: ServerScript

    报错原因: Server Script脚本不存在

    解决方法: 检查是否拼错Server Script脚本名称,或者在对应Form的Server Script中添加相应的脚本即可。

 

 

  ④ 报错信息: SQL error: ORA-00904: "XXX"."YYY": 标识符无效

          ORA-00904: "XXX"."YYY": 标识符无效

 

      错误原因: XXX表中缺失字段YYY

    解决方法: 在Table Manager中找到表XXX,添加字段YYY即可。

  

  ⑤ 报错信息: SQL error: ORA-00942: 表或视图不存在

          ORA-00942: 表或视图不存在

          SQL stmt: <SQL语句>

    错误原因: 表不存在

    解决方法: 在Table Manager中添加SQL语句中缺失表即可。

 

 

 

  三、SQL Server与Oracle的sql语句不兼容的相关问题

        由于实朴用的是SQL Server 数据库,而九安用的是Oracle数据库,SQL Server中好多自带的函数都不能在Oracle中使用,

    一些查询语句的使用规则也不尽相同,从而导致一些不兼容的情况发生。遇到的情况如下:

    ① 函数等不兼容的问题

    

   ② sql语句的区别

    根据第二张表的关联关系更新第一张表中的数据

    SQL Server:

         update userinfo  
       set userinfo.username=i.username,userinfo.password=i.password
       from info i
       where userinfo.id = i.id;

 

    Oracle: 

       update userinfo  
       set (userinfo.username,userinfo.password)
       =(select username,password from info i where userinfo.id = i.id);

      

   

作者:caobotao
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
posted @ 2015-11-09 14:07  caobotao  阅读(449)  评论(0编辑  收藏  举报