/*set serveroutput on
declare
type emp_record_type is record(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_record emp_record_type;
begin
select ename,sal,deptno into emp_record --放到记录
from emp where empno=&no;
dbms_output.put_line(emp_record.name);
end;*/
--select * from dept;
/* 记录类型
declare
dept_record dept%ROWTYPE;
begin
dept_record.deptno:=50;
dept_record.loc:='BEIJING';
dept_record.dname:='ADMINISTRATOR';
insert into dept values dept_record;
dept_record.deptno:=30;
dept_record.dname:='SALES';
dept_record.loc:='ShangHai';
update dept set row=dept_record where deptno=30;
dept_record.deptno:=50;
delete from dept where deptno=dept_record.deptno;
end; */
--索引表
/*set serveroutput on
declare
type ename_table_type is table of emp.ename%TYPE --建立索引表
index by BINARY_INTEGER;
ename_table ename_table_type;
begin
select ename into ename_table(-1) from emp --下标取行值
where empno=&no;
dbms_output.put_line('雇员名:'||ename_table(-1));
end; */
--使用varchar2
/*set serveroutput on
declare
type area_table_type is table of number
index by varchar2(10);
area_table area_table_type;
begin
area_table('北京'):=1; --建立索引表
area_table('上海'):=2;
area_table('广州'):=3;
dbms_output.put_line('第一个元素:'||area_table.first);--获取index ,以拼音排序
dbms_output.put_line('最后一个元素:'||area_table.last);
end; */
--嵌套表
/*declare
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;
begin
ename_table:=ename_table_type('MARY','MARY','MARY');
select ename into ename_table(2) from emp
where empno=&no;
dbms_output.put_line('雇员名1:'||ename_table(1));
dbms_output.put_line('雇员名2:'||ename_table(2));
dbms_output.put_line('雇员名3:'||ename_table(3));
end; */
--表列中使用嵌套表
/*create type phone_type is table of varchar2(20);--create type 创建嵌套表,自动生成构造方法
/
create table employee(
id number(4),
name varchar2(10),
sal number(6,2),
phone phone_type
)nested table phone store as phone_table;
--指定专门存储表
begin
insert into employee values(1,'scott',800,phone_type('0471-888888','13400000000'));--使用构造方法
end;*/
--检索嵌套列数据
/*set serveroutput on
declare
phone_table phone_type;
begin
select phone into phone_table from employee where id=1;--设置嵌套列变量
for i in 1..phone_table.count loop
dbms_output.put_line('电话号码:'||phone_table(i));
end loop;
end;*/
--更新
/*declare
phone_table phone_type:=phone_type('010-123456','12322222222');
begin
update employee set phone=phone_table where id=1;
end;*/
--变长数组 varray
/*declare
type ename_table_type is varray(20) of emp.ename%type; --设置容量
ename_table ename_table_type:=ename_table_type('mary');--初始化
begin
for i in 1..ename_table.count loop
select ename into ename_table(i) from emp where empno=&no;--更改
end loop;
for i in 1..ename_table.count loop
dbms_output.put_line('雇员名'||i||':'||ename_table(i));
end loop;
end;*/
--表列中使用 varray
/*create type phone_type is varray(20) of varchar2(20);
/
create table employee(
id number(4),
name varchar2(10),
sal number(6,2),
phone phone_type
);*/
--pl/sql 记录表 处理多行多列数据
/*declare
type emp_table_type is table of emp%rowtype --索引表 多行多列
index by binary_integer;
emp_table emp_table_type;
begin
select * into emp_table(1) from emp
where empno=&no;
dbms_output.put_line('雇员姓名:' ||emp_table(1).ename);
dbms_output.put_line('雇员工资:'||emp_table(1).sal);
end; */
--多级集合 多维数组 嵌套varray
/*declare
type al_varray_type is varray(10) of int;
type nal_varray_type is varray(10) of al_varray_type;
nv nal_varray_type:=nal_varray_type(
al_varray_type(58,100,102),
al_varray_type(55,6,73),
al_varray_type(2,4));
begin
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
--嵌套表
/*declare
type al_varray_type is table of int;
type nal_varray_type is table of al_varray_type;
nv nal_varray_type:=nal_varray_type(
al_varray_type(58,100,102),
al_varray_type(55,6,73),
al_varray_type(2,4,6));
begin
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
--多级索引表
/*declare
type al_varray_type is table of int
index by binary_integer;
type nal_varray_type is table of al_varray_type
index by binary_integer;
nv nal_varray_type;
begin
nv(1)(1):=10;
nv(1)(2):=20;
nv(2)(1):=30;
nv(2)(2):=40;
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
/*declare
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;--:=ename_table_type('kevin','lee'); --索引表无需初始化
begin
if ename_table.exists(1) then --用于pl/sql
ename_table(1):='scott';
dbms_output.put_line('更改后:'||ename_table(1));
else
dbms_output.put_line('要初始化表元素');
end if;
end;
/*/
--批量绑定测试
/*drop table demo;
commit;
create table demo(
id number(6) primary key,
name varchar2(10)
);
commit;
declare
type id_table_type is table of demo.id%type
index by binary_integer;
type name_table_type is table of demo.name%type
index by binary_integer;
id_table id_table_type;
name_table name_table_type;
start_time number(10);
end_time number(10);
begin
for i in 1..50000 loop
id_table(i):=i;
name_table(i):='Name'||i; --to_char?
end loop;
start_time:=dbms_utility.get_time;
--for i in 1..id_table.count loop
forall i in 1..id_table.count --使用批量绑定特征
insert into demo values(id_table(i),name_table(i));
--end loop;
end_time:=dbms_utility.get_time;
dbms_output.put_line('总计时间(秒):'||(end_time-start_time)/100);--时间??
commit;
end;
/*/
/*
create table new_demo as --空表
select * from demo where 1=0;
commit;
declare
type id_table_type is table of demo.id%type;
type name_table_type is table of demo.name%type;
id_table id_table_type;
name_table name_table_type;
type index_pointer_type is table of pls_integer; --创建指针表
index_pointer index_pointer_type;
begin
select * bulk collect into id_table,name_table --??
from demo;
index_pointer:=index_pointer_type(6,8,10);
forall i in values of index_pointer
insert into new_demo values(id_table(i),name_table(i));
commit;
end;
/*/
--显示游标
/*declare
cursor emp_cursor is
select ename,sal from emp where deptno=10; --create
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
open emp_cursor; --open
loop
fetch emp_cursor into v_ename,v_sal; --fetch(loop)
exit when emp_cursor%NOTFOUND;
dbms_output.put_line(v_ename||':'||v_sal);
end loop;
close emp_cursor; --close
end;
/*/
--显示游标 提取到collect
/*declare
cursor emp_cursor is
select ename from emp where deptno=10; --create
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;
begin
open emp_cursor; --open
fetch emp_cursor bulk collect into ename_table; --fetch
for i in 1..ename_table.count loop
dbms_output.put_line(ename_table(i));
end loop;
close emp_cursor; --close
end;
/*/
/*
declare
type name_array_type is varray(5) of varchar2(10);
name_array name_array_type;
cursor emp_cursor is select ename from emp;
lim int:=5;
v_count int:=0;
begin
open emp_cursor;
loop
fetch emp_cursor bulk collect into name_array limit lim;
dbms_output.put('雇员名:');
for i in 1..(emp_cursor%rowcount-v_count) loop
dbms_output.put(name_array(i)||' ');
end loop;
dbms_output.put_line(to_char(v_count));
v_count:=emp_cursor%rowcount; --上一次的游标位置
exit when emp_cursor%notfound;
end loop;
close emp_cursor;
end;
/*/
--游标变量 建议 可带参数 当用于 update delete
/*declare
cursor emp_cursor(no number) is select ename,sal from emp where deptno=no --for update 加锁
for update;
emp_record emp_cursor%rowtype;
begin
open emp_cursor(10);
loop
fetch emp_cursor into emp_record;
exit when emp_cursor%notfound;
update emp set sal=sal-200 where current of emp_cursor; --current of 当前行
dbms_output.put_line('雇员姓名:'||emp_record.ename||',雇员工资:'||emp_record.sal);
end loop;
close emp_cursor;
end;
/*/
--使用for语句 简化开发
declare
cursor emp_cursor(no number) is select ename,sal from emp where deptno=no;
begin
for emp_record in emp_cursor(10) loop --不用声明 也可不用游标 替换为子查询 (select * from emp)
dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.ename);
end loop;
end;
/
declare
type emp_record_type is record(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_record emp_record_type;
begin
select ename,sal,deptno into emp_record --放到记录
from emp where empno=&no;
dbms_output.put_line(emp_record.name);
end;*/
--select * from dept;
/* 记录类型
declare
dept_record dept%ROWTYPE;
begin
dept_record.deptno:=50;
dept_record.loc:='BEIJING';
dept_record.dname:='ADMINISTRATOR';
insert into dept values dept_record;
dept_record.deptno:=30;
dept_record.dname:='SALES';
dept_record.loc:='ShangHai';
update dept set row=dept_record where deptno=30;
dept_record.deptno:=50;
delete from dept where deptno=dept_record.deptno;
end; */
--索引表
/*set serveroutput on
declare
type ename_table_type is table of emp.ename%TYPE --建立索引表
index by BINARY_INTEGER;
ename_table ename_table_type;
begin
select ename into ename_table(-1) from emp --下标取行值
where empno=&no;
dbms_output.put_line('雇员名:'||ename_table(-1));
end; */
--使用varchar2
/*set serveroutput on
declare
type area_table_type is table of number
index by varchar2(10);
area_table area_table_type;
begin
area_table('北京'):=1; --建立索引表
area_table('上海'):=2;
area_table('广州'):=3;
dbms_output.put_line('第一个元素:'||area_table.first);--获取index ,以拼音排序
dbms_output.put_line('最后一个元素:'||area_table.last);
end; */
--嵌套表
/*declare
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;
begin
ename_table:=ename_table_type('MARY','MARY','MARY');
select ename into ename_table(2) from emp
where empno=&no;
dbms_output.put_line('雇员名1:'||ename_table(1));
dbms_output.put_line('雇员名2:'||ename_table(2));
dbms_output.put_line('雇员名3:'||ename_table(3));
end; */
--表列中使用嵌套表
/*create type phone_type is table of varchar2(20);--create type 创建嵌套表,自动生成构造方法
/
create table employee(
id number(4),
name varchar2(10),
sal number(6,2),
phone phone_type
)nested table phone store as phone_table;
--指定专门存储表
begin
insert into employee values(1,'scott',800,phone_type('0471-888888','13400000000'));--使用构造方法
end;*/
--检索嵌套列数据
/*set serveroutput on
declare
phone_table phone_type;
begin
select phone into phone_table from employee where id=1;--设置嵌套列变量
for i in 1..phone_table.count loop
dbms_output.put_line('电话号码:'||phone_table(i));
end loop;
end;*/
--更新
/*declare
phone_table phone_type:=phone_type('010-123456','12322222222');
begin
update employee set phone=phone_table where id=1;
end;*/
--变长数组 varray
/*declare
type ename_table_type is varray(20) of emp.ename%type; --设置容量
ename_table ename_table_type:=ename_table_type('mary');--初始化
begin
for i in 1..ename_table.count loop
select ename into ename_table(i) from emp where empno=&no;--更改
end loop;
for i in 1..ename_table.count loop
dbms_output.put_line('雇员名'||i||':'||ename_table(i));
end loop;
end;*/
--表列中使用 varray
/*create type phone_type is varray(20) of varchar2(20);
/
create table employee(
id number(4),
name varchar2(10),
sal number(6,2),
phone phone_type
);*/
--pl/sql 记录表 处理多行多列数据
/*declare
type emp_table_type is table of emp%rowtype --索引表 多行多列
index by binary_integer;
emp_table emp_table_type;
begin
select * into emp_table(1) from emp
where empno=&no;
dbms_output.put_line('雇员姓名:' ||emp_table(1).ename);
dbms_output.put_line('雇员工资:'||emp_table(1).sal);
end; */
--多级集合 多维数组 嵌套varray
/*declare
type al_varray_type is varray(10) of int;
type nal_varray_type is varray(10) of al_varray_type;
nv nal_varray_type:=nal_varray_type(
al_varray_type(58,100,102),
al_varray_type(55,6,73),
al_varray_type(2,4));
begin
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
--嵌套表
/*declare
type al_varray_type is table of int;
type nal_varray_type is table of al_varray_type;
nv nal_varray_type:=nal_varray_type(
al_varray_type(58,100,102),
al_varray_type(55,6,73),
al_varray_type(2,4,6));
begin
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
--多级索引表
/*declare
type al_varray_type is table of int
index by binary_integer;
type nal_varray_type is table of al_varray_type
index by binary_integer;
nv nal_varray_type;
begin
nv(1)(1):=10;
nv(1)(2):=20;
nv(2)(1):=30;
nv(2)(2):=40;
dbms_output.put_line('显示元素:');
for i in 1..nv.count loop
for j in 1.. nv(i).count loop
dbms_output.put('nv{'||i||','||j||'}='||nv(i)(j)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
/*/
/*declare
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;--:=ename_table_type('kevin','lee'); --索引表无需初始化
begin
if ename_table.exists(1) then --用于pl/sql
ename_table(1):='scott';
dbms_output.put_line('更改后:'||ename_table(1));
else
dbms_output.put_line('要初始化表元素');
end if;
end;
/*/
--批量绑定测试
/*drop table demo;
commit;
create table demo(
id number(6) primary key,
name varchar2(10)
);
commit;
declare
type id_table_type is table of demo.id%type
index by binary_integer;
type name_table_type is table of demo.name%type
index by binary_integer;
id_table id_table_type;
name_table name_table_type;
start_time number(10);
end_time number(10);
begin
for i in 1..50000 loop
id_table(i):=i;
name_table(i):='Name'||i; --to_char?
end loop;
start_time:=dbms_utility.get_time;
--for i in 1..id_table.count loop
forall i in 1..id_table.count --使用批量绑定特征
insert into demo values(id_table(i),name_table(i));
--end loop;
end_time:=dbms_utility.get_time;
dbms_output.put_line('总计时间(秒):'||(end_time-start_time)/100);--时间??
commit;
end;
/*/
/*
create table new_demo as --空表
select * from demo where 1=0;
commit;
declare
type id_table_type is table of demo.id%type;
type name_table_type is table of demo.name%type;
id_table id_table_type;
name_table name_table_type;
type index_pointer_type is table of pls_integer; --创建指针表
index_pointer index_pointer_type;
begin
select * bulk collect into id_table,name_table --??
from demo;
index_pointer:=index_pointer_type(6,8,10);
forall i in values of index_pointer
insert into new_demo values(id_table(i),name_table(i));
commit;
end;
/*/
--显示游标
/*declare
cursor emp_cursor is
select ename,sal from emp where deptno=10; --create
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
open emp_cursor; --open
loop
fetch emp_cursor into v_ename,v_sal; --fetch(loop)
exit when emp_cursor%NOTFOUND;
dbms_output.put_line(v_ename||':'||v_sal);
end loop;
close emp_cursor; --close
end;
/*/
--显示游标 提取到collect
/*declare
cursor emp_cursor is
select ename from emp where deptno=10; --create
type ename_table_type is table of emp.ename%type;
ename_table ename_table_type;
begin
open emp_cursor; --open
fetch emp_cursor bulk collect into ename_table; --fetch
for i in 1..ename_table.count loop
dbms_output.put_line(ename_table(i));
end loop;
close emp_cursor; --close
end;
/*/
/*
declare
type name_array_type is varray(5) of varchar2(10);
name_array name_array_type;
cursor emp_cursor is select ename from emp;
lim int:=5;
v_count int:=0;
begin
open emp_cursor;
loop
fetch emp_cursor bulk collect into name_array limit lim;
dbms_output.put('雇员名:');
for i in 1..(emp_cursor%rowcount-v_count) loop
dbms_output.put(name_array(i)||' ');
end loop;
dbms_output.put_line(to_char(v_count));
v_count:=emp_cursor%rowcount; --上一次的游标位置
exit when emp_cursor%notfound;
end loop;
close emp_cursor;
end;
/*/
--游标变量 建议 可带参数 当用于 update delete
/*declare
cursor emp_cursor(no number) is select ename,sal from emp where deptno=no --for update 加锁
for update;
emp_record emp_cursor%rowtype;
begin
open emp_cursor(10);
loop
fetch emp_cursor into emp_record;
exit when emp_cursor%notfound;
update emp set sal=sal-200 where current of emp_cursor; --current of 当前行
dbms_output.put_line('雇员姓名:'||emp_record.ename||',雇员工资:'||emp_record.sal);
end loop;
close emp_cursor;
end;
/*/
--使用for语句 简化开发
declare
cursor emp_cursor(no number) is select ename,sal from emp where deptno=no;
begin
for emp_record in emp_cursor(10) loop --不用声明 也可不用游标 替换为子查询 (select * from emp)
dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.ename);
end loop;
end;
/
发表评论
-
adb命令
2012-08-09 14:28 1367ADB install app.apk ADB shell ... -
sqlite3
2012-08-09 13:02 953.mode column; .header on; al ... -
Oracle 10G:PL/SQL正规表达式(正则表达式)
2012-03-23 18:47 783Oracle 10G:PL/SQL正规表达式(正则表达式) ... -
生产区重新部署web
2012-03-09 22:38 695http://middleware123.com/weblog ... -
procedure 学习
2012-03-09 10:54 781http://hi.baidu.com/test2704/bl ... -
dblink
2012-03-09 10:05 4727三. 创建DBLINK的方法: 1. create p ... -
oracle 子分区
2012-01-30 10:43 3907--1.创建表空间 create tablespace ... -
oracle execute immediate
2012-01-30 10:42 6815解析并马上执行动态语句 ,或非运行时创建的pl/sql ... -
厅表tp_ac01
2011-10-25 20:18 0create table tp_ac01 as select ... -
oracle 添加定时任务
2011-09-16 16:31 955--submit select * from repor ... -
decode和case的参数区别 timestamp date
2011-08-23 14:58 891SELECT DECODE('AA ', 'AA', '= ... -
oracle 用一个表更新另一个表
2011-07-11 10:19 30541.生成临时表 update (select a.aaa,b. ... -
semi join anti-join
2011-07-06 17:24 0使用in exists 用semi-join set aut ... -
终止oracle正在执行的存储过程
2011-06-14 14:13 4934--查看运行的procedure (表提供对象在libra ... -
oracle 并行
2011-05-13 14:52 0多的的地对地导弹的 -
oracle 级联查询 级联求和 汇总
2011-04-29 15:12 2654级联查询 select level||'层',lpad ... -
oracle中文日期 Oracle数据库中的''与NULL的
2011-04-13 10:48 1222转自:http://micki.blogbus.com/log ... -
[转]无法启动oracleDBConsole的解决方案之一
2011-02-21 22:24 956http://www.iteye.com/topic/6472 ... -
oracle触发器与存储过程(第10章)
2011-02-09 17:09 0--包调用方式 biology_degrees integer ... -
pk_imp_benefit(未完成)
2011-02-09 11:26 0n_sql := 'select ffqsny,yhzh00 ...
相关推荐
Oracle 存储过程学习经典入门 Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识...
### ORACLE存储过程学习知识点详解 #### 一、存储过程概述 存储过程是数据库中预编译好的一组SQL语句,它可以实现复杂的数据处理逻辑,提高应用开发效率,并且能够增强应用程序的安全性。Oracle存储过程使用PL/SQL...
这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,我们将深入探讨存储过程的基本概念、结构、类型,以及如何通过这些源码进行学习。 1. **存储过程的...
### Oracle存储过程学习经典 #### Oracle存储过程基础知识与实践 Oracle存储过程是SQL与PL/SQL结合的强大功能,用于封装复杂的数据操作逻辑于数据库内部,从而实现高效的事务处理和数据管理。以下是对Oracle存储...
### Oracle存储过程学习经典知识点详解 #### Oracle存储过程概述与基础知识 存储过程是数据库中预编译的一系列SQL和PL/SQL语句的集合,它提供了执行复杂操作的能力,如事务处理、数据处理和错误处理。Oracle存储...
这个"Oracle存储过程学习经典(实例)"资源显然是为初学者设计的,旨在帮助他们掌握如何创建、执行和管理存储过程。 存储过程在数据库管理中扮演着关键角色,它可以提升系统的性能,通过减少网络流量和提供预编译的...
### Oracle存储过程学习经典知识点详解 #### 一、Oracle存储过程概述 - **定义**: 存储过程是在数据库中预编译并存储的一段SQL或PL/SQL代码块,它可以包含复杂的逻辑处理,用于实现特定的功能。存储过程提高了代码...
### Oracle存储过程学习经典知识点详解 #### 一、Oracle存储过程概述 **存储过程**是在数据库中预先定义并编译好的一系列SQL语句或PL/SQL代码块,它可以接受输入参数,输出参数,并能实现复杂的业务逻辑处理。通过...
### Oracle存储过程学习文档知识点详解 #### 一、Oracle存储过程概述 **1.1 存储过程定义:** Oracle存储过程是一种存储在数据库中的PL/SQL代码块,它可以接收输入参数并返回输出参数。存储过程能够执行复杂的业务...
### Oracle存储过程学习经典知识点详解 #### 一、创建存储过程 存储过程是数据库中预编译的一段SQL代码,可以提高程序的可维护性和执行效率。在Oracle中,可以通过`CREATE OR REPLACE PROCEDURE`语句来创建存储过程...
在本学习资料中,你将深入理解Oracle存储过程的创建、调用、调试以及优化等多个方面。 1. **存储过程的创建**: Oracle存储过程通过`CREATE PROCEDURE`语句来定义。你可以指定输入参数、输出参数、输入输出参数,...
Oracle存储过程学习总结涵盖了Oracle中存储过程的编写与应用,涉及到字符串处理、游标使用、PL/SQL编程等方面的知识点。 首先,字符串处理是存储过程中常见的操作。文章中提到了多个内置函数,如CONCAT用于连接字符...
在本篇“Oracle存储过程学习笔记(四)”中,我们将深入探讨存储过程的概念、创建、执行以及在实际应用中的优势。 1. **存储过程的概念** 存储过程是一组预先编译的SQL和PL/SQL语句,存储在数据库服务器中。当需要...
在这个“Oracle存储过程学习实例文档”中,我们将深入探讨如何创建存储过程,以及如何在Java应用程序中调用这些过程。 1. **创建Oracle存储过程** 创建存储过程的基本语法如下: ```sql CREATE OR REPLACE ...
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字
这个压缩包文件"oracle存储过程学习经典入门.rar_oracle"显然包含了帮助初学者理解并掌握Oracle存储过程的基础教程。下面将详细讲解Oracle存储过程的相关知识点。 首先,存储过程是预编译的SQL语句集合,它在数据库...