51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3818|回复: 9
打印 上一主题 下一主题

求助 :在 plsql下可以执行的语句放到wr下执行结果为 -10162

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-24 16:19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
测试脚本为:(目的就是执行sql,察看是否执行成功)
public sql,rr,recordNumber;

db_connect("query1","DSN=salecs;UID=zhaoahWD=zhaoah;DBQ=salecs;DBA=W;APA=T;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;MTS=F;CSR=FFC=10;TLO=0;",30);

sql="select * from ZY.RES_SIM a where 1 = 1 and rownum <= 100 and res_date < to_date('20081127121624','YYYYMMDDHH24MISS') "
    &"and (region_code = 771 or oregion_code = 771) and (receiver=0 or receiver is null) and brand in (0,5) and res_code = "
        &"200001 and hlr_code = 7711 and main_flag = 1 and sts = 2 and res_sts in (1,4,5) and exists(select 1 from "
        &"ZY.RES_MSISDN_IMSI_MAP b where b.start_msisdn <= '13607714582' and b.end_msisdn >= '13607714582' and "
        &"b.start_imsi <= a.imsi and b.end_imsi >= a.imsi)";
report_msg(sql);#--sql显示正确
rr=db_execute_query("query1",sql,recordNumber);
pause(rr);#--rr= -10162,为sql语法错误的提示信息
该问题问过同事,说是wr下的语法规则比plsql下的语法严格,但是查来查去,自己没看出什么不规则的地方了,麻烦各位火眼金睛帮忙看看。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-12-24 16:22:22 | 只看该作者
当然也可能是其他问题,欢迎指教
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-12-24 16:44:17 | 只看该作者
1.SQL语句本身可以执行吗?
2.把SQL语句写的简单点,看是否可以执行通过?
如果上面两个都不可以,可能是你DSN的设置或其他什么地方有问题
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-12-24 17:01:37 | 只看该作者
1.sql可以单独执行通过
2.其他sql语句测试通过,比如说sql="select * from ZY.RES_SIM where rownum<10";
(同时也证明其他配置应该没问题吧)

是否有其他语法格式上的问题??
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-12-24 17:38:22 | 只看该作者
我的看法是:WR可能不支持复杂的SQL语句
或则你可以慢慢的将SQL语句复杂起来,看到底在哪个地方出错
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-12-24 17:55:29 | 只看该作者
找到问题了,sql语句到....main_flag = 1可以执行通过,但是再加一个sts=2,就不通过了,初步确定楼上的说法,好像真不支持复杂(具体来说太长的?)的sql,这样子的话比较麻烦,sql语句没办法优化了,请问一下有什么解决的办法没?

只有分开来,比如说第一个条件执行后的结果放到第二个sql下再执行?累计得到结果?似乎有点繁琐了...
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-12-24 18:00:37 | 只看该作者
现在得问题是想拆开也拆不开了 ,第一个 sql完整执行(就是不关联其他表 )也不通过(太长 ),没有办法拆吧

是否有其他解决办法 ?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-12-25 12:38:01 | 只看该作者
用其他语言来实现 比如VBS 看看是否可以 昨天后来我还想到一个办法 但现在忘了 等记起来再跟你说
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-12-25 12:49:55 | 只看该作者
WR连接数据库没有问题吧?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2007-12-25 16:01:44 | 只看该作者
回复楼上 :连接没有问题,呵呵,
后经多次调试,发现wr也不支持 exists,,, 修改成between,才调过 .

谢谢各位,
总结:wr对sql的支持语法严格,并且不支持复杂的sql语句(太成了很容易提示语法错误,但是不是绝对的,没有找到 限制的长度或者具体限制的复杂度),另外,好像不支持exists.
引用:
用其他语言来实现 比如VBS 看看是否可以 昨天后来我还想到一个办法 但现在忘了 等记起来再跟你说
----我们目前的系统框架只有初始化脚本的时候通过vba实现调用执行(具体有没有错误现在好像没遇到),vbs可以实现么?,呵呵,欢迎指教.

[ 本帖最后由 zhaoaihua305 于 2007-12-25 16:22 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-20 09:23 , Processed in 0.081671 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表