6. PLSQL--动态SQL和存储过程、函数

本文介绍了PLSQL中的动态SQL概念及其分类,包括EXECUTE IMMEDIATE和OPEN CURSOR FOR的使用,强调了绑定变量的重要性。此外,详细讨论了存储过程与匿名块的区别,以及存储过程的参数类型。最后,探讨了函数的特点,强调函数和过程的主要区别以及函数编写时的注意事项。
摘要由CSDN通过智能技术生成

1.8动态SQL

1.8.1动态sql的概念

本质上来说动态sql就是将符合sql语法的字符串当作sql来运行
动态sql相对于静态sql来说更灵活,并且可以突破一些PL/SQL对静态sql的限制
由于在编译时sql的全文还不确定,所以你可以使用动态sql构建灵活的,多用途的应用程序
1.动态sql的分类
对应DML/DDL/SELECT INTO 语句我们使用EXECUTE IMMEDIATE 语句来执行;
对于多行查询我们使用OPEN CURSOR FOR 语句来执行
1)EXECUTE IMMEDIATE ‘ dml语句/ddl语句 ‘
单行注释为-- 多行注释为 /内容/
在这里插入图片描述

2)OPEN 游标名 FOR 语句
只能打开REF cursor 类型的游标,后面跟随多行的查询语句
在这里插入图片描述

2.绑定变量
没有执行绑定变量前,2个语句是不同的,都是硬链接,需要占用2块内存空间
通过下面的例子我们可以发现,一样类似的语句由于传入的部门编号不同,被Oracle定义为2个不同的sql语句,拥有不同的sql id号,在share pool中2个sql各占一份空间,游标不能被共享,会造成硬解析。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值