sql developer怎样调试Pipelined
在sql developer中,如果直接对pipelined语句进行断点debug会报错,那么怎样可以解决这个问题呢?可以用procedure包住这个函数,再进行单步调试。下面是演示的demo。 * 准备pipelined ``` CREATE TYPE t_tf_row AS OBJECT ( id NUMBER, description VARCHAR2(50) ); / CREATE TYPE t_tf_tab IS TABLE OF t_tf_row; / CREATE OR REPLACE FUNCTION get_tab_ptf (p_rows IN NUMBER) RETURN t_tf_tab PIPELINED AS BEGIN FOR i IN 1 .. p_rows LOOP PIPE ROW(t_tf_row(i, 'Description for ' || i)); END LOOP; RETURN; END; / ``` * 然后用procedure包住这个get_tab_ptf函数 ``` CREATE OR REPLACE PROCEDURE test_pipeline IS BEGIN FOR cur_rec IN (SELECT * FROM TABLE(get_tab_ptf(10))) LOOP dbms_output.put_line('get one row!'); END LOOP; END; ``` * 接着将断点打在test_pipeline的for循环上,对这个procedure进行单步调试就可以跳转到函数get_tab_ptf 内部了。
作者:sylarinfo
出处:博客园sylarinfo的技术博客--http://www.cnblogs.com/sylarinfo/
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文如未在开头表明转载,则版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。