oracle – 如何在PL / SQL Developer中调试流水线函数?
发布时间:2020-12-12 13:09:21 所属栏目:百科 来源:网络整理
导读:我在oracle数据库中有一个PL / SQL包,它包含一个名为FN_GET_USERINFO_ROWS的流水线函数,如下所示: CREATE OR REPLACE PACKAGE PKG_USERINFO AS TYPE TY_USERINFO_RECORD IS RECORD( U_ID VARCHAR2(50),U_NAME VARCHAR2(50),DOB DATE); TYPE TY_USERINFO_TAB
我在oracle数据库中有一个PL / SQL包,它包含一个名为FN_GET_USERINFO_ROWS的流水线函数,如下所示:
CREATE OR REPLACE PACKAGE PKG_USERINFO AS TYPE TY_USERINFO_RECORD IS RECORD( U_ID VARCHAR2(50),U_NAME VARCHAR2(50),DOB DATE); TYPE TY_USERINFO_TABLE IS TABLE OF TY_USERINFO_RECORD; FUNCTION FN_GET_USERINFO_ROWS(P_USER_ID IN NUMBER) RETURN TY_USERINFO_TABLE PIPELINED; END PKG_USERINFO; 我正在运行以下测试脚本以在PL/SQL Developer测试流水线FN_GET_USERINFO_ROWS(文件 – >新 – >测试窗口) declare result PKG_USERINFO.TY_USERINFO_TABLE; begin -- calling pipelined function result := PKG_USERINFO.FN_GET_USERINFO_ROWS(P_USER_ID => :P_USER_ID); end; 但它显示以下错误:
如何使用PL/SQL Developer调试流水线功能? 其中一种方法是使用FOR-SELECT-LOOP创建一个块,并在函数中放置一个断点,或者只记录每个读取行的内容(取决于调试的含义).因此,您可以分离每个PIPE ROW执行并查看其结果.然后在PL / SQL Dev中选择File-> Open-> TestScript并从打开的窗口运行块.DECLARE result pkg_userinfo.ty_userinfo_table; BEGIN -- we call pipelined functions like this FOR rec IN (SELECT * FROM TABLE (pkg_userinfo.fn_get_userinfo_rows(:P_USER_ID)) -- WHERE rownum < 2 -- uncomment this line and vary amount of fetched rows ) LOOP dbms_output.put_line('another step : ' || rec.u_id); END LOOP; END; 另外,我建议你在抛出NO_DATA_NEEDED时调试变体.为此,添加WHERE子句限制行数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 怎么读出Xml文件中某个节点、属性的信息
- Oracle TIMESTAMP WITH TIMEZONE命名区域与偏移量
- ruby-on-rails – SSL配置无法读取server.crt文件
- 如何在Swift中扩展协议
- c# – 如何以编程方式将RadComboBox与数据源设置为Automati
- SQLite“INSERT OR REPLACE INTO”与“UPDATE … WHERE”
- Gartner:2017全球数据库安全市场趋势
- ruby – Twitter api速率限制的解决方法
- [smart210] Nand Flash K9F4G08U0B 的配置与读写控制(二)
- React Native填坑之旅 -- 回归小插曲