电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

技术方案--在日志中找到并利用sql语句分析问题的方法.pdfVIP免费

技术方案--在日志中找到并利用sql语句分析问题的方法.pdf_第1页
1/10
1/10用友股份-支持服务事业部技术方案--《在日志中找到并利用sql语句分析问题的方法》建立日期:2014-02-25修改日期:2014-02-25文档属性:客户文控编号:LE-DN-TS-2014-00412/10文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围内部员工伙伴客户发布人姓名所属部门发布时间李志军服务业务管理部2014-02-28日期作者所属部门邮件地址版本2014-02-25用友NC产品支持部V1.0版本领域模块备注3/10目录在日志中找到并利用sql语句分析问题的方法.....................................................44/10在日志中找到并利用sql语句分析问题的方法注:请由计算机专业人士操作,并且操作前请做好备份工作!通过后台日志,我们可以定位和分析问题,在日志中怎样找到当前操作发出的sql语句对我们分析一些由于数据问题造成的错误很重要,本文就说明一下如果才能从日志中找到操作的sql语句以及利用sql语句如何分析问题。1、怎样设置输出sql语句:打开中间件ncsysconfig.bat文件,在选择log页签,在日志路径后面的三个点参照中选择文件logger-config.properties打开,读取后,如下图:图15/10将模块anonymous的级别调成DEBUG,保存,重启中间件即可。就可以在日志中输出操作的sql语句了。2、带sql语句的日志在哪个文件中?路径:.../nclogs/${server}/这个目录下,也就是(图1)中输出列中的路径。anonymousDEBUG./nclogs/${server}/anony-log.log文件:在路径下的文件名是anony-log[0].log,操作日志都记录到了该文件下。3、怎样在日志文件中找到所做的操作的日志?打开日志文件anony-log[0].log,会发现有好多东西,不知道我要的日志是哪条,刚才做的某个操作的sql语句是哪条,下面介绍一下如何找到所要的sql语句:第一、对于有能输入查询条件的地方,点查询后发出的sql语句快速在日志中定位到方法;举例:人员信息维护,点查询后发出的sql语句该怎样在日志找到的方法:点查询,输入带有特殊字符的条件,例如,姓名中输入‘####’后,确定,打开anony-log[0].log文件,在文件中搜索刚才输入的特殊字符‘####’,就可以找到刚才查询的那个sql语句了,如下图:将此sql语句复制出来,去掉这个特殊字符的条件就是我们要的sql语句了。6/10第二、对于不能输入查询条件的地方的,操作的后台sql语句的查看方法。例如:点开一个参照发出的sql语句如何找到,建议大家使用类似于UltraEdit这样的工具查看日志,当日志文件发生变化后,会提示是否重新加载,如下图所示:在我们要做某个操作前,可以将该文件定位到最后一行,并记住行号,然后进行操作,操作后重新加载文件,就可以知道从哪行开始的,下面的日志就是刚才操作产生的。如果没有这样的工具,也可以用另外这种方法,就是将anony-log[0].log用记事本打开,然后删除所有内容,保存,会提示文件已经存在,是否提替换,直接替换即可,然后再去做操作,这样该文件中保存的就全是刚才所做的操作的日志。例如,增加薪资档案,选择人员时候所发出的sql语句我们该如何找到,点开人员编码参照,在选择部门的时候就会查出部门下的人员,查询部门下人员的时候肯定要发出sql语句的,在点了一个部门后,然7/10后重新加载日志文件,通常从最后向前找,找的方法可以通过查询出的条数来定位,如下图:查询出,点部门01dept01的时候,查出4条记录,我们就可以根据4条记录来找到sql语句,如下图,QueryRows=4查出4条记录的这条sql语句就应该是我们所要找的,在根据表名确认一下,没有错,就找到了。当然这中方法只是一个小小窍门,如果你对数据库报很熟悉,就可以直接查询表来找到sql语句。4、用后台日志定位问题方法:方法一、注销where条件法,这种方法是分析数据错误的很常用用的一种;例如,导入数据后,在人员信息维护节点查询不出来;在薪资档案中增加人员的时候,无法参照到任意信息维护中的人员等等。上面所说的例子都是由于查询不出来造成的,我们知道,查询不出来很可能是由于被我们查询时候的sql语句的where后的某些条件给限定住了,造成8/10查询不出来,我们就可以通过注销where条件的方法来分析是那些条件给限定住了,造成无法查询出来,然后将数据修改正确就可以查询出来。拿上面第二个例子来说,薪资档案中增加人员,无法参照到人员,日志中找到sql语句如下,复制到PL/SQLDeveloper中:然后用双横杠--或者/**/来注销where后的条件来分析,如下图:点一下该按钮,将刚才复制过9/10注销该段条件后,执行sql语句,如果能查询出来我们之前在界面上没有查询出的人员,问题就应该在这个条件里,然后在将注销的范围缩小,例如将andisealflag=0注销掉,入下图所示:之前曾出现过这样的问题,将andisealflag=0注销掉后,在查询可以看到之前在界面上增加人员时候看不到的人员,这就说明,表wa_dept中的字段isealflag封存标记不是0,只要将查询不出来的人所在的薪资部门的解封就可以了,或者直接写sql语句:updatewa_deptsetisealflag=0wherepk_deptdocin(selectpk_deptdocfrombd_psndocwherepsnname='增加时候见不到的人名');10/10方法二:与正确数据比对法例如:在给一个人的合同续签的时候,点下一步报错,而其他人在续签的时候正常,这中情况极有可能是该人的合同数据有有错误,可以讲出错的这个人与一个没有错误的人的合同数据进行对比,看看哪有不同,然后将不同的地方填上值就可以解决。方法三、查看日志中具体错误法,有的错误给出的提示是很明确的。例如薪资结账报错,看后台日志报某个表违反唯一约束,我们可以判断是在该表中存在了重复的记录,删除重复记录就可以正常结账了。

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

技术方案--在日志中找到并利用sql语句分析问题的方法.pdf

您可能关注的文档

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信