- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Orale 数据库游标使用大全
Oracle 游标使用大全
Oracle 游标使用大全 1
1. 游标简介 2
2. 查询SELECT… INTO … 2
3. %TYPE属性 2
4. 其他DML语句 3
5. DML语句的结果 3
5.1 SQL%FOUND和SQL%NOTFOUND 3
5.2 SQL%ROWCOUNT 4
5.3 SQL%ISOPEN 4
6. 事务控制语句 4
7. 显式游标与隐式游标 4
8. 使用游标 7
8.1 声明游标 7
8.2 打开游标 7
8.3 关闭游标 7
8.4 从游标提取数据 8
8.5 记录变量 9
8.6 带参数的游标 9
8.7 游标FOR循环 11
8.8 在游标FOR循环中使用查询 12
8.9 游标中的子查询 12
8.10 游标中的更新和删除 12
游标简介
在数据库中,游标是一个十分重要的概念,游标提供了一种灵活手段,可以对表中检索出的数据进行操作。就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标由结果集和结果集中指向特定记录的游标位置组成,游标充当指针的作用。尽管游标能够遍历查询结果中的所有行,但它一次只能指向一行。使用数据游标可以选择一组数据,可以在记录集上滚动游标,并检查游标指向的每一行数据。可以用局部变量和游标的组合来分别检查每个记录,并在转移到下一个记录之前,进行所需的任何外部操作。游标的另一个常见用途是保存查询结果,以便以后使用。游标的结果集是由select语句产生,如果处理过程需要重复使 用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快得多。查询… INTO …
在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了。?? ? SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。SELECT INTO语法如下: SELECT DISTICT | ALL { * | column, column,.. . }
INTO (variable, variable,.. . | record)
FROM {table | (sub - query) } alias
WHERE ............ PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标(对游标的讨论我们将在后面进行),INTO子句中要有与SELECT子句中相同列数量的变量。INTO子句中也可以是记录变量。?
?
%TYPE属性
???? 在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。? ?
例:?
v_empno SCOTT.EMP.EMPNO%TYPE;?
v_salary EMP.SALARY%TYPE;?
? 不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。?
??? DELCARE?
??? V_A NUMBER(5):=10;?
??? V_B V_A%TYPE:=15;?
??? V_C V_A%TYPE;?
??? BEGIN?
????? DBMS_OUTPUT.PUT_LINE?
????? (V_A=||V_A||V_B=||V_B||V_C=||V_C);?
??? END?
????
??? SQL/?
??? V_A=10 V_B=15 V_C=?
???? PL/SQL procedure successfully completed.?
???? SQL?
???? ?
其他DML语句?
??? 其它操作数据的DML语句是:INSERT、UPDATE、DELETE和LOCK TABLE,这些语句在PL/SQL中的语法与在SQL中的语法相同。我们在前面已经讨论过DML语句的使用这里就不再重复了。在DML语句中可以使用任何在DECLARE部分声明的变量,如果是嵌套块,那么要注意变量的作用范围。?
?例:?
CREATE OR REPLACE PROCEDURE FIRE_EMPLOYEE(pempno in number) AS v_ename EMP.ENAME%TYPE;
BEGIN
SELECT ename INTO v_ename F
文档评论(0)