oralce 存储过程 游标的使用
来源:互联网 发布:新浪微博点赞软件 编辑:程序博客网 时间:2024/05/16 08:44
--基于存储过程 用户的增删改查操作
create or replace procedure insert_t_user
as
begin
insert into t_user values('','','');
end;
--存储过程的调用
call insert_t_user;
--带参数的存储过程
CREATE OR REPLACE PROCEDURE insert_emp_proc(myempno NUMBER,myename VARCHAR2,myjob VARCHAR2,mymgr NUMBER,mydate DATE,mysal NUMBER,mycomm NUMBER,mydeptno NUMBER)
AS
BEGIN
INSERT INTO emp VALUES(myempno,myename,myjob,mymgr,mydate,mysal,mycomm,mydeptno);
END;
--执行带参数的执行的存储过程
CALL insert_emp_proc(999,'三九系列','坑爹',7689,SYSDATE,1800,4000,30);
--更新数据存储过程
CREATE OR REPLACE PROCEDURE update_emp_proc(myempno IN NUMBER,myename IN VARCHAR2) AS
BEGIN
UPDATE emp SET ename=myename WHERE empno=myempno;
END;
-- 使用动态sql
CREATE OR REPLACE PROCEDURE update_emp_proc(myempno NUMBER,myename VARCHAR2) AS
mysql VARCHAR2(500);
BEGIN
mysql:='UPDATE emp SET ename=:1 WHERE empno=:2';
--立即执行存储过程 使用相应的参数
EXECUTE IMMEDIATE mysql USING myename,myempno;
END;
--
CALL update_emp_proc(999,'123');
--删除数据存储过程
CREATE PROCEDURE del_emp_proc(myemp NUMBER)
AS
BEGIN
DELETE emp WHERE empno=myemp;
END;
CALL del_emp_proc(999);
--查询数据存储过程
--查询单条数据
----查询数据存储过程
CREATE OR REPLACE PROCEDURE selname_emp_proc(myempno IN NUMBER,myname OUT VARCHAR2)
AS
BEGIN
SELECT ename INTO myname FROM emp WHERE empno=myempno;
dbms_output.put_line(myname);
END;
----调用
DECLARE
myname VARCHAR2(50);
BEGIN
selname_emp_proc(7788,myname);
END;
--
--PL/SQL 中 SELECT 语句只返回一行数据。如果超过一行数据,那么就要使用显式游标,
--INTO 子句中要有不 SELECT子句中相同列数量的变量。INTO 子句中也可以是记录变量。
--------用游标显示查询所有的结果
CREATE OR REPLACE procedure selAll_emp_proc
AS
CURSOR sel_emp IS SELECT * FROM emp;--定义游标,该游标指向查询结果
rowresult emp%ROWTYPE;
BEGIN
OPEN sel_emp;--打开游标
LOOP FETCH sel_emp INTO rowresult;--将游标中的值赋给rowresult
EXIT WHEN sel_emp%NOTFOUND;--判断:游标不存在时跳出循环
dbms_output.put_line('员工名:'||rowresult.ename||'工资:'||rowresult.sal);
END LOOP;
CLOSE sel_emp;--关闭游标
END;
--
CALL selAll_emp_proc();
--
for rowresult in sel_emp loop
dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
end loop;
end;
create or replace procedure insert_t_user
as
begin
insert into t_user values('','','');
end;
--存储过程的调用
call insert_t_user;
--带参数的存储过程
CREATE OR REPLACE PROCEDURE insert_emp_proc(myempno NUMBER,myename VARCHAR2,myjob VARCHAR2,mymgr NUMBER,mydate DATE,mysal NUMBER,mycomm NUMBER,mydeptno NUMBER)
AS
BEGIN
INSERT INTO emp VALUES(myempno,myename,myjob,mymgr,mydate,mysal,mycomm,mydeptno);
END;
--执行带参数的执行的存储过程
CALL insert_emp_proc(999,'三九系列','坑爹',7689,SYSDATE,1800,4000,30);
--更新数据存储过程
CREATE OR REPLACE PROCEDURE update_emp_proc(myempno IN NUMBER,myename IN VARCHAR2) AS
BEGIN
UPDATE emp SET ename=myename WHERE empno=myempno;
END;
-- 使用动态sql
CREATE OR REPLACE PROCEDURE update_emp_proc(myempno NUMBER,myename VARCHAR2) AS
mysql VARCHAR2(500);
BEGIN
mysql:='UPDATE emp SET ename=:1 WHERE empno=:2';
--立即执行存储过程 使用相应的参数
EXECUTE IMMEDIATE mysql USING myename,myempno;
END;
--
CALL update_emp_proc(999,'123');
--删除数据存储过程
CREATE PROCEDURE del_emp_proc(myemp NUMBER)
AS
BEGIN
DELETE emp WHERE empno=myemp;
END;
CALL del_emp_proc(999);
--查询数据存储过程
--查询单条数据
----查询数据存储过程
CREATE OR REPLACE PROCEDURE selname_emp_proc(myempno IN NUMBER,myname OUT VARCHAR2)
AS
BEGIN
SELECT ename INTO myname FROM emp WHERE empno=myempno;
dbms_output.put_line(myname);
END;
----调用
DECLARE
myname VARCHAR2(50);
BEGIN
selname_emp_proc(7788,myname);
END;
--
--PL/SQL 中 SELECT 语句只返回一行数据。如果超过一行数据,那么就要使用显式游标,
--INTO 子句中要有不 SELECT子句中相同列数量的变量。INTO 子句中也可以是记录变量。
--------用游标显示查询所有的结果
CREATE OR REPLACE procedure selAll_emp_proc
AS
CURSOR sel_emp IS SELECT * FROM emp;--定义游标,该游标指向查询结果
rowresult emp%ROWTYPE;
BEGIN
OPEN sel_emp;--打开游标
LOOP FETCH sel_emp INTO rowresult;--将游标中的值赋给rowresult
EXIT WHEN sel_emp%NOTFOUND;--判断:游标不存在时跳出循环
dbms_output.put_line('员工名:'||rowresult.ename||'工资:'||rowresult.sal);
END LOOP;
CLOSE sel_emp;--关闭游标
END;
--
CALL selAll_emp_proc();
--
for rowresult in sel_emp loop
dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
end loop;
end;
阅读全文
0 0
- oralce 存储过程 游标的使用
- 在Oralce存储过程中使用游标来逐行处理数据示例并执行调试
- 存储过程使用游标
- 存储过程游标使用
- 带游标的存储过程的使用
- 存储过程及游标的使用
- oracle存储过程和游标的使用
- oracle存储过程与游标的使用
- PLSQL游标的使用_存储过程
- oracle存储过程和游标的使用
- oracle 存储过程和游标的使用
- 存储过程与游标的配合使用
- oracle存储过程和游标的使用
- Oracle 存储过程、游标的使用
- MySQL存储过程 游标循环的使用
- sql service 存储过程,游标的使用
- SQLserver2008,存储过程,游标的使用。
- mysql存储过程以及游标的使用
- day04-easyUId atagrid使用方法-使用easyUI提供的API创建datagrid
- VR开发教程-中文版(1)-VR Overview
- android 如何动态设置View的margin和padding
- 登录的时候利用token验证
- HotSpot
- oralce 存储过程 游标的使用
- C#DataTable和dataGridView控件
- 英语生词小结(2)
- 将SqlServer迁移到oracle通过sqldeveloper
- (四)元组
- 如何用jQuery实现弹出一个层然后过3秒钟后自动变淡然后消失
- Android热修复之QQ空间与QFix方案
- GAN
- var求方差