Oracle存储过程中cursor + with用法
2022/7/26 2:23:11
本文主要是介绍Oracle存储过程中cursor + with用法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
公用表表达式(Common Table Expression)与游标混合应用例子: Oracle存储过程中cursor + with用法 -- P_PO_TYPE_CODE: 采购单据类型,如标准采购订单、一揽子采购协议 -- P_ITEM_CODE : 物料号 -- P_CURSOR1: 输出游标类型资料 CREATE OR REPLACE PROCEDURE CUX_TEST_CUR_RV( P_PO_TYPE_CODE IN VARCHAR2, P_ITEM_CODE IN VARCHAR2, P_CURSOR1 OUT SYS_REFCURSOR) AS BEGIN OPEN P_CURSOR1 FOR WITH CTE AS ( SELECT PV.VENDOR_NAME, PV.VENDOR_CODE, PHA.PO_NUMBER,PLA.UNIT_PRICE, PHA.CREATION_DATE FROM PO_HEADERS_ALL PHA, PO_LINES_ALL PLA, PO_VENDORS PV WHERE PHA.PO_HEADER_ID = PLA.PO_HEADER_ID AND PHA.VENDOR_ID = PV.VENDOR_ID 。。。。。 ), DPT_INFO AS ( SELECT ..... ) SELECT CTE.VENDOR_NAME, CTE.VENDOR_CODE, CTE.PO_NUMBER,CTE.UNIT_PRICE FROM CTE , DPT_INFO DI WHERE CTE.PO_NUMBER = DI.PO_NUMBER ..... END; -- 测试 游标 declare R1 sys_refcursor; V_VENDOR_NAME VARCHAR2(250); V_VENDOR_CODE VARCHAR2(150); V_PO_NUMBER VARCHAR2(150); V_UNIT_PRICE NUMBER; begin CUX_TEST_CUR_RV( 'BLANKET','GL0116', R1); loop fetch R1 into V_VENDOR_NAME, V_VENDOR_CODE, V_PO_NUMBER,V_UNIT_PRICE; exit when R1%notfound; DBMS_OUTPUT.PUT_LINE('VENDOR_NAME,PO_NUMBER,UNIT_PRICE:'|| V_VENDOR_NAME|| ','||V_PO_NUMBER|| ','||TO_CHAR( V_UNIT_PRICE, 'fm9999999999999990.00')); end loop; close R1; end;
这篇关于Oracle存储过程中cursor + with用法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!