- 浏览: 472389 次
-
文章分类
最新评论
-
datawarehouse:
来学习了。
什么是informatic? -
nange223:
感谢分享,学习了
一些数据库监控,优化,管理工具 -
pianxibin:
ertrth thr dj dyj
一些数据库监控,优化,管理工具 -
gekky6:
多谢分享,学习下
一些数据库监控,优化,管理工具 -
lqlein:
好好学习学习
一些数据库监控,优化,管理工具
1、游标类型
(1) 隐式游标:在PL/SQL中执行DML SQL语句自动创建隐式游标
隐式游标的属性有:
%FOUND -- SQL语句影响了一行或多行市为TRUE
%NOTFOUND --SQL语句没有影响任何时为TRUE
%ROWCOUNT --SQL语句影响的行数
%ISOPEN--游标是否打,始终为FALSE
例如:
SET SERVEROUTPUT ON
BEGIN
update toys set tyoprice=270 where toyid='P005'
if SQL%FOUND then --只有DML语句影响一行或多行时,才返回true
DBMS_OUTPUT.PUT_LINE('表已跟新');
end if;
END;
SET SERVEROUTPUT ON
DECLARE
v_toyid toys.id%type:='&TOYID';
v_toyname toys.name%type='&TOYNAME';
BEGIN
update toys set name=v_toyname
where toyid=v_toyid;
if SQL%NOTFOUND then--只有DML语句不影响任何行时,才返回true
dbms_output.put_line('bian hao wei zhao dao');
else
dbms_output.put_line('biao yi geng xin');
end if;
END;
SET SERVEROUTPUT ON
BEGIN
update vendor_master
set venname='Rob Mathew' where vencode='V004';
dbms_output.put_line(SQL%ROWCOUNT); --返回DML语句影响的行数
END;
(2)显示游标: 用于处理返回多行的查询
不带参数的游标
SET SERVER OUTPUT ON
DECLARE
my_toy_price toys.toyprice%type;
CURSOR toy_cur is
select toyprice from toys where toyprice<250;
BEGIN
OPEN toy_cur;
LOOP
FETCH toy_cur INTO my_toy_price;
EXIT WHEN toy_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('TOYPRICE=:WANJUDANJIAO=:'||my_toy_price);
END LOOP;
CLOSE toy_cur;
END;
带参数的游标:
SET SERVEROUTPUT ON
DECLARE
desig varchar2(20);
emp_code varchar2(5);
empnm varchar2(20);
CURSOR emp_cur (desigparam varchar2) IS
SELECT empno,ename from employee where designation=desig;
BEGIN
desig:='&desig';
OPEN emp_cur(desig);
LOOP
FETCH emp_cur INTO emp_code,empnm;
EXIT WHEN emp_cur%notfound;
dbms_outpu.put_line(emp_code||' ' || empnm);
END LOOP;
CLOSE emp_cur;
END;
使用显式游标更新行
允许使用游标删除或更新活动集中的行
声明游标时必须使用SELECT ...FOR UPDATE 语句
CURSOR <curosr_name> IS
SELECT statement FOR UPDATE;
UPDATE <table-name>
SET <set_name>
WHERE current of <cursor_name>;
DELETE FROM <table_name>
WHERE current of <corsor_name>;
例如:
SET SERVEROUTPUT ON
DECLARE
new_price NUMBER;
CURSOR cur_toy IS
SELECT toyprice from toys where toyprice<100
for update of toyprice;
BEGIN
OPEN cur_toy;
LOOP
FETCH cur_toy INTO new_price;
EXIT WHEN cur_toy%NOTFOUND;
UPDATE toys
SET toyprice=1.1*new_price
WHERE CURRENT OF cur_toy;
END LOOP;
CLOSE cur_toy;
COMMIT;
END;
循环游标:用于简化游标处理代码
例如:
SET SERVER OUTPUT ON
DECLARE
CURSOR mytoy_cur is
select toyid,toy_name,toyprice from toys;
BEGIN
FOR toy_rec IN mytoy_cur
LOOP
DBMS_OUTPUT.PUT_LINE('编号:'||' '||toy_rec.toyid||''
'名称:'||' '||toy_rec.toyname||''
'单价:'||' "||toy_rec.toyprice);
END LOOP;
END;
(3)REF游标:用于处理运行时才能确定的动态SQL查询的结果(用于处理运行时动态执行的SQL查询)
声明强类型的REF游标:
TYPE my_curtype IS REF CURSOR
RETURN stud_det%ROWTYPE;
order_cur my_curtype;
声明弱类型的REF游标:
TYPE my_ctype IS REF CURSOR;
stud_cur my_ctype;
2、使用游标变量执行动态SQL
DECLARE
r_emp emp%rowtype;
TYPE c_type IS REF CURSOR;
cur c_type;
p_salary number;
BEGIN
p_salary:=2500;
OPEN cur FOR 'select * from emp where sal>:1
order by sal desc'
USING p_salary;
DBMS_OUTPUT.PUT_LINE('薪水大于'||P_SALARY||'的员工有:_'
LOOP
FETCH cur INTO r_emp;
EXIT WHEN cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('编号:'||r_emp.empno||'姓名:'||r_emp.ename||'薪水:'||r_emp.sal);
END LOOP;
CLOSE cur;
_
END;
3.程序包中的游标
Create or replace package cur_pack as
Cursor ord_cur(vcode varchar2)
Return order_master%rowtype;
Procedure ord_pro(vcode varchar2);
SQL> CREATE OR REPLACE PACKAGE BODY cur_pack AS
CURSOR ord_cur(vcode VARCHAR2)
RETURN order_master%ROWTYPE IS
SELECT * FROM order_master WHERE VENCODE=vcode;
PROCEDURE ord_pro(vcode VARCHAR2) IS
or_rec order_master%ROWTYPE;
BEGIN
OPEN ord_cur(vcode);
LOOP
FETCH ord_cur INTO or_rec;
EXIT WHEN ord_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LIne(’返回的值为' || or_rec.orderno);
END LOOP;
END ord_pro;
END cur_pack;
/
发表评论
-
oracle分析函数row_number() over()使用
2009-12-24 16:00 2361row_number() over ([partition ... -
深入sql之merge into
2009-07-10 22:37 2245http://nodonkey.iteye.com/blog/ ... -
Oracle字符集问题总结(转)
2009-07-10 15:53 1104经常有同事咨询oracle数据库字符集相关的问题,如在不 ... -
minus/not in/not exists的原理和效率
2009-07-06 14:57 2997http://www.itpub.net/viewthread ... -
批量获取多个表的创建索引语句
2009-06-08 09:48 1611批量获取多个表的创建索引语句 一个朋友提供的set ec ... -
Truncate table,Delete,与Drop table的区别
2009-06-06 15:33 4589TRUNCATE TABLE 在功能上与不带 WHERE 子句 ... -
oracle cast() 函数问题
2009-06-02 15:03 12996SQL> create table t1(a varch ... -
db2中decimal实现oracle中trunc的方法
2009-06-02 15:00 3295在oracle中trunc的使用方法: 1.TRUNC(fo ... -
oracle是如何工作的(一个有趣的故事)
2009-06-01 14:12 1210转自http://bbs3.chinaunix.net/v ... -
表约束的巧用
2009-06-01 14:08 8171、问题: 表中的一個欄位,現在是VARCHAR2(8)型的 ... -
BLOB和CLOB区别和定义
2009-06-01 11:16 10237BLOB和CLOB区别和定义 LON ... -
Oracle中忘记System和Sys密码后的处理方法
2009-05-06 21:21 1368Oracle提供两种验证方式,一种是OS验证,另一种密码文件验 ... -
Oracle SQL*Loader 使用指南(解决插入大量的数据)
2009-04-27 11:21 1616我的理解; 如果表的属性是NOLOGG ... -
数据字典——数据库概念
2009-04-24 09:37 1529来自:http://yangtingkun.itpub.net ... -
创建连接服务器
2009-03-30 10:53 873一般的方法是:oracle->Net manager 还 ... -
JIRA
2009-03-13 13:57 1157在cmcs學到的系統JIRA+SVN+Fisheye+Cruc ... -
Study Oracle Document Website
2009-03-12 09:32 1187http://www.siue.edu/~dbock/cmis ... -
查看表占用多少M
2009-03-03 13:40 912SQL> SELECT d.status "S ... -
汉字和字符分开(整理)--补充(所用函数说明)
2009-03-02 17:17 19211、substr() substr('This is ... -
汉字和字符分开(整理)
2009-03-02 17:11 1239SQL> create table gjtext 2 ...
相关推荐
游标在计算机编程中,尤其是数据库管理和Web开发中扮演着重要的角色。在本文中,我们将深入探讨CSS(层叠样式表)中的游标属性,以及它如何影响网页交互体验。 CSS是用于控制网页元素外观和布局的重要工具。游标...
:red_apple: macOS游标主题 苹果光标 享受具有HiDPI支持的适用于Windows和Linux Cursor主题 :party_popper...在资源管理器中打开macOSBigSur_Windows/ ,然后右键单击install.inf 。 从上下文菜单中单击“安装”,然
在“Solutions-For-Show-Me-the-Code”这个项目中,主要关注的是作者针对“Show Me the Code”挑战的Python...通过阅读“Python 数据库笔记 - MySQL.md”,读者可以深入理解如何在Python环境中有效地管理MySQL数据库。
调用包中的过程如`EXECUTE pack_me.order_proc ('002')`。 - **过程调用**:`order_proc`是一个过程,它接收一个输入参数。调用过程时,需要提供参数值。 4. **Oracle数据库管理**: - **数据库启动与关闭**:...
游标对象提供了多种方法来管理与数据库的交互。例如,要执行一个查询操作,可以使用cursor.execute()方法,并通过fetch函数来获取查询结果: ```python cursor = cnxn.cursor() cursor.execute("SELECT user_id, ...
Unload Me Form2.Show ' 登录进入的另一个界面 End If End With ``` 请注意,上述代码示例中的数据库连接和密码处理方式可能不适用于生产环境。在实际应用中,应使用更安全的方式处理敏感信息,如使用参数化...
10. **游标**:游标允许程序逐行处理查询结果,对数据库进行交互式操作。 11. **权限管理**:GRANT和REVOKE语句用于赋予和撤销用户对数据库对象的操作权限。 本参考手册中包含的样本数据文件(如oracle_sample_...
通过游标和动态SQL,可以将临时表中的DDL语句逐条写入到指定的文件中,形成一个完整的DDL脚本。 `read_me.txt`是常见的说明文件,通常包含对整个压缩包内容的简要介绍、使用方法、注意事项等信息。对于这个脚本,...
- PL/SQL编程:理解PL/SQL块的结构,游标,异常处理,存储过程和函数的创建与调用。 2. 数据库安装与配置: - 安装选项:了解不同的安装类型,如企业版、标准版、个人版等。 - 数据库创建:使用DBCA(Database ...
根据提供的信息,我们可以...综上所述,这段代码片段展示了如何使用Java ME进行简单的UI元素定义,以及如何配置和管理Oracle数据库。通过深入理解这些知识点,开发者能够更好地掌握Java ME和Oracle数据库的相关技术。
12. 创建游标(Cursor)的正确语法是`DECLARE cursor_name CURSOR FOR select_statement`。 13. HTML中,`<h1>`到`<h6>`表示标题,`<h1>`是最大的标题,`<hl>`不是HTML的标准标签。 14. 字符常量是以单引号包围的...
- **设置游标位置**:`CursorLocation` 属性设置为 `adUseServer`,表示记录集的游标位于服务器上。 - **打开记录集**:使用 `Open` 方法打开记录集,参数分别指定了SQL语句、连接对象、记录集类型、锁定类型和命令...
在Android应用开发中,数据库是存储和管理应用程序数据的关键组件。本资料“数据库增删查改.rar”聚焦于Android中的SQLite数据库,这是Android系统默认支持的关系型数据库,用于实现应用程序的本地数据存储。SQLite...
安装PHP Facebook SDK通常通过Composer完成,Composer是PHP的依赖管理工具。在项目根目录下,运行`composer require facebook/php-sdk-v4`命令,即可将SDK添加到项目中。接着,你需要设置SDK的访问令牌和应用配置,...
除了简单的存储过程调用外,还可以创建包含游标的存储过程,并通过包来管理这些存储过程。例如: 1. **创建包**: ```sql CREATE OR REPLACE PACKAGE TEST_PACKAGE AS TYPE Test_CURSOR IS REF CURSOR; END ...
button = tk.Button(root, text="Click me!", command=on_click) button.pack() ``` #### 7. Canvas 小部件 Canvas 小部件提供了一个绘图区域,可以在其中绘制图形元素。它支持多种图形对象,如弧形、位图、图像、...
7. **标签“Access.SavePicture”关联的知识**:在描述中提到的"Access"可能是指Microsoft Access,这是一个关系型数据库管理系统。在Access中,`SavePicture`是VBA(Visual Basic for Applications)的一个方法,...
在本课程"Pytho_CRUD:Aprendiendo Python和BBDD"中,我们将深入学习如何使用Python语言...在后续的学习中,你还会了解到事务管理、存储过程、数据库设计原则等更高级的主题,从而全面提升你的Python数据库编程能力。
4. **数据库API扩展**:cx_Oracle除了提供基本的数据库访问功能外,还添加了一些针对Oracle特定特性的扩展,使得开发者能够充分利用Oracle数据库的功能,比如PL/SQL的执行,游标操作,事务管理等。 5. **性能和稳定...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...