一般程序出现什么问题,直观判断不出来的时候,大家都会选择debug工具r.d2+来查看出了什么问题
但有的时候,这个不一定是万能的 因为debug画面上看到的sql语句,未必就是传送给db的sql语句 比如程序中有一行CREATE TEMP TABLE这样的语句 使用debug工具r.d2+时,在debug窗口中看到的就是CREATE TEMP TABLE这样的语句 若直接把此语句丢进ORACLE的DB进行执行,结果会是fail,因为ORACLE根本就不支持这样的语句 但是这句话,在4gl程序中执行,却可得到正确的结果 所以,我们可以猜想到,中间肯定做了一些转换,那这句CREATE TEMP TABLE到底变成了怎样一条 ORACLE可以接受的语句呢? r.d2+办不到,这个时候,大家可以使用r.r2d 来看到这句最终的sql语句 命令格式:r.r2d your_porg (在含有your_prog.4gl的目录下执行) 此时会生成一个your_prog.log文档,在这个文档中,search CREATE TEMP TABLE 在它的附近就会有一条真正丢进ORACLE DB的SQL语句 在ORACLE中它被转换成了CREATE TABLE..但是在temp tablespace中进行的create 可能大家还不一定熟悉这个工具,只是告诉大家,若真得有时候出现解决不了的sql时,可以看log的方式来尝试一下 |
|
最新喜欢:Perry |