Oracle_10g_plsql实战笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1编写一个存储过程,该过程可以向某表中添加记录
1) 创建一个简单的表
create table mytest(name varchar2(30),passwd varchar2(30));
2)创建过程:
create or replace procedure sp_pro1 is
bgin
3)执行部分
insert into mytest values('zhangsan','zhangsan');
4) 结束
end;
5)
/
如何查看错误:show error;
如何调用过程:
1)exec 过程名(参数值1,参数值2……)--调用一次就插入一条记录2)call 过程名(参数值1,参数值2……)
select * from mytest;--查看结果
2编写一个存储过程,该过程可以删除表记录
create or replace procedure sp_pro2 is
bgin
--执行部分
delete from mytest where name = 'zhangsan';
end;
5)
/
java程序结果
public static void main(String[] args)
{
int a = 1;
try
{
a++;
}
catch(Exception e)
{
//异常处理
}
--打开输出选项
set serveroutput on;
--关闭输出选项
set serveroutput off;
exec sp_pro3(‘SCOTT’,4890); //娱乐测试
如何在java程序中调用一个存储过程?
在java中建立一个project程序
//演示用例:演示java程序调用oracle的存储过程案例
Try
{
//1 加载驱动
class.forName(“oracle.jdbc.driver.OracleDriver”);
//2 连接
//……
//3 创建CallableStatement
ableStatement cs = ct.prepareCall(“{call sp_pro3(?,?)}”);
//4给?赋值
cs.setString(1,”SMITH”);
cs.setInt(2,1005);
//5 执行
cs.execute();
//6 关闭
cs.close();
conn.close();
}
。
游标
A cursor is a name for a specific private SQL area in which information for processing the specific statement is kept
I mplicit / explicit
Collections (集合)
Varray - 数组
Nested table –集合
Associative Arrays – (hash table)
Records
DECLARE TYPE timerec IS RECORD (hours SMALLINT, minutes SMALLINT);
对象类型
CREATE TYPE employee_typ AS OBJECT
CREATE TYPE BODY employee_typ AS
3
5 复合类型-pl/sql表
相当于高级语言中的数组.但是需要注意的是在高级语言中数组的下标不能为负数,而pl/sql是可以为负数的,并且表元素的下标没有限制.实例如下
declare
type sp_table_type is table of emp.ename%type
index by binary_integer; --下标按整数排序
sp_table sp_table_type; --定义一个变量:sp_table ,类型sp_table_type
begin
select ename into sp_table(-1) from emp where empno=7788;
dbms_output.put_line('员工名:'|| sp_table(-1));
end;
说明:sp_table_type是pl/sql表类型
emp.ename%type 指定了表的元素的类型和长度
sp_table 为pl/sql表变量
sp_table(0)则表示下标为0的元素
6 参照变量-介绍
参照变量是指用于存放数值指针的变量.通过使用参照变量,可以使得应用程序共享相同对象,从而降低占用的空间。在编写pl/sql程序时,可以使用游标变量(ref cursor) 和对象类型变量,(ref obj_type)两种参照变量类型
参照变量-ref cursor游标变量
使用游标时,当定义游标时不需要指定相应的select语句,但是当使用游标时(open 时)需要指定select语句,这样一个游标就与一个select语句结合了。
实例如下: