- 浏览: 210861 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (196)
- Git (16)
- maven (8)
- Python (20)
- linux (14)
- java (30)
- spring (5)
- javascript (4)
- oracle (15)
- jquery (4)
- jbpm4.4 (4)
- ibatis (1)
- svn (1)
- sql server (1)
- sqoop (1)
- photoshop (2)
- 日常记录 (5)
- scala (1)
- IntelliJ IDEA (7)
- mysql (2)
- Hive (1)
- visual studio code (3)
- angularjs (5)
- nodejs (4)
- gradle (1)
- springboot (4)
- jakson (1)
- hibernate (2)
- 面试 (5)
- React (2)
- Kotlin (1)
- Netty (0)
- webstorm (2)
- spring cloud (4)
- redis (1)
- PowerDesigner (1)
- Vue (4)
- easyui (1)
- activiti (2)
- httpClient4.5 (2)
- logback (3)
- ngrinder (1)
- 分库分表 (1)
最新评论
-
严东军:
学习了,谢谢
摘录--DBMS_SCHEDULER -
zwllxs:
你知道你调的是谁的代码不?
jbpm4.4+ssh2 完整请假流程
--------------------------------创建过程 procedure
create or replace procedure myprocedure(id in number) --参数的数据类型不跟字符类型的大小
is ---is == as
name varchar2(10); ---过程里面声明的字符类型后面必须跟上字符类型的大小。
begin
select ename into name from emp where empno = id;
dbms_output.put_line(name);
end myprocedure;
execute myprocedure(7369); -----命令控制台执行过程
create or replace procedure myproc2(id in number,name out varchar2) is
begin
select ename into name from emp where empno = id;
dbms_output.put_line(name);
end myproc2;
SQL> declare -----命令控制台执行过程
2 tid number;
3 tname varchar2(10);
4 begin
5 tid := 7369;
6 myproc2(7369,tname);
7 end;
8 /
SMITH
PL/SQL procedure successfully completed
------------------------------------------------- 定义函数 function
create or replace function get_salary(dept_no in number,emp_count out number)
return number is
V_sum number;
begin
select sum(sal),count(*) into V_sum,emp_count from emp where deptno=dept_no;
return V_sum;
exception
when no_data_found then
dbms_output.put_line('你需要的数据不存在');
when others then
dbms_output.put_line(sqlcode||'---'||sqlerrm);
end get_salary;
SQL> declare -----命令控制台执行定义的函数
2 v_num number;
3 v_sum number;
4 begin
5 v_sum := get_salary(10,v_num); ---可以这样传递参数:v_sum := get_salary(dept_no => 10,emp_count => v_num);
6 dbms_output.put_line('10号部门工资总和:'||v_sum||',people:'||v_num);
7 end;
8 /
10号部门工资总和:8750,people:3
PL/SQL procedure successfully completed
------------------------------------------------游标
游标是一个指向上下文的句柄(handle)或指针。
对于不同的SQL语句,游标的使用情况不同
SQL语句 游标
非查询语句 隐式游标
结果是单行的查询语句 隐式游标或显示游标
结果是多行的查询语句 显示游标
游标的声明部分是唯一可以出现在模块声明部分中的步骤
在声明部分的末尾声明游标
SQL> declare
2 v_ename emp.ename%type;
3 v_sal emp.sal%type;
4 cursor c_cursor is select ename,sal from emp where rownum < 8; ----定义一个游标
5 begin
6 open c_cursor; ---打开游标
7 fetch c_cursor into v_ename,v_sal; -----提前游标工作区域中的数据集合
8 while c_cursor %found loop
9 dbms_output.put_line(v_ename||'----'||to_char(v_sal));
10 fetch c_cursor into v_ename,v_sal;
11 end loop;
12 close c_cursor; ----关闭游标
13 end;
14 /
SMITH----800
ALLEN----1600
WARD----1250
JONES----2975
MARTIN----1250
BLAKE----2850
CLARK----2450
PL/SQL procedure successfully completed
==============
显示游标属性 描述
%found 布尔型属性,当最近一次读记录时成功返回,则值为true;
%notfound 布尔型属性,与%found相反
%isopen 布尔型属性,当游标已打开时返回true
%rowcount 数字型属性,返回已从游标中读取的记录数
===================
==============
隐式游标属性 描述
%found 布尔型属性,当最近一次读记录时成功返回,则值为true;
%notfound 布尔型属性,与%found相反
%isopen 布尔型属性,取值总是false,sql命令执行完毕立即关闭隐式游标。
%rowcount 数字型属性,返回已从游标中读取的记录数
===================
----------------------------处理隐式游标
SQL> declare
2 v_deptno emp.deptno%type := &p_deptno;
3 begin
4 delete from emp where deptno = v_deptno;
5 if sql%notfound then
6 delete from dept where deptno=20;
7 end if;
8 end;
9 /
PL/SQL procedure successfully completed -----不要忘记commit
-----------------------------------------------------游标检索循环
SQL> declare
2 v_empno emp.empno%type;
3 v_sal emp.sal%type;
4 cursor c_cursor is select empno,sal from emp;
5 begin
6 open c_cursor;
7 loop
8 fetch c_cursor into v_empno,v_sal;
9 exit when c_cursor %notfound;
10 if v_sal <= 1000 then
11 update emp set sal = sal +50 where empno = v_empno;
12 dbms_output.put_line('编码为'||v_empno||'工资已更新');
13 end if;
14 dbms_output.put_line('记录数为'||c_cursor %rowcount);
15 end loop;
16 close c_cursor;
17 end;
18 /
编码为7369工资已更新
记录数为1
记录数为2
记录数为3
记录数为4
记录数为5
记录数为6
记录数为7
记录数为8
记录数为9
记录数为10
记录数为11
编码为7900工资已更新
记录数为12
记录数为13
记录数为14
PL/SQL procedure successfully completed
--------------------------------------------------------------游标的for循环
SQL> declare
2 cursor c_sal is select empno,ename,sal from emp;
3 begin
--隐含打开游标
4 for v_sal in c_sal loop
--隐含执行一个fetch语句
5 dbms_output.put_line(to_char(v_sal.empno)||'---'||v_sal.ename||'---'||to_char(v_sal.sal));
--隐含监测c_sal%notfound
6 end loop;
--隐含关门游标
7 end;
8 /
7369---SMITH---850
7499---ALLEN---1600
7521---WARD---1250
7566---JONES---2975
7654---MARTIN---1250
7698---BLAKE---2850
7782---CLARK---2450
7788---SCOTT---3000
7839---KING---5000
7844---TURNER---1500
7876---ADAMS---1100
7900---JAMES---1000
7902---FORD---3000
7934---MILLER---1300
PL/SQL procedure successfully completed
---------------------------------------------------------带参数的游标的for循环
SQL> declare
2 cursor c_cursor(dept_no number default 10)is
3 select dname,loc from dept where deptno <= dept_no;
4 begin
5 dbms_output.put_line('dept_no 参数值为30:');
6 for c1_rec in c_cursor(30) loop
7 dbms_output.put_line(c1_rec.dname||'---'||c1_rec.loc);
8 end loop;
9 dbms_output.put_line(chr(10)||'dept_no 参数值为10:');
10 for c1_rec in c_cursor(10) loop
11 dbms_output.put_line(c1_rec.dname||'---'||c1_rec.loc);
12 end loop;
13 end;
14 /
dept_no 参数值为30:
ACCOUNTING---NEW YORK
RESEARCH---DALLAS
SALES---CHICAGO
dept_no 参数值为10:
ACCOUNTING---NEW YORK
PL/SQL procedure successfully completed
-------------------------------------------------------for update 游标锁定
SQL> declare
2 v_deptno emp.deptno%type :=&p_deptno;
3 cursor emp_cursor is
4 select empno,sal from emp where deptno = v_deptno FOR UPDATE NOWAIT; --当加上NOWAIT子句时,
--如果这些行真的被另一个会话锁定,
--则open立即返回并给出错误提示:
--ORA-0054:resource busy and acquire with nowait specified
5 begin
6 for emp_rec in emp_cursor loop
7 if emp_rec.sal < 1500 then
8 update emp set sal=1500 where current of emp_cursor;
9 end if;
10 end loop;
11 end;
12 /
PL/SQL procedure successfully completed
--------------------------------------------------------游标变量的应用 游标变量类型无返回值
SQL> declare
2 type emp_cursor_type is ref cursor; ---定义游标变量类型的名称
3 emp_cursor emp_cursor_type; ---声明一个变量为游标变量类型(无返回值)
4 emp_record emp%rowtype; ---定义一个与表字段 字段类型相同的一个记录
5 begin
6 open emp_cursor for select * from emp where deptno = 10; ---打开游标变量 open ... for
7 loop
8 fetch emp_cursor into emp_record;
9 exit when emp_cursor%notfound;
10 dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.ename);
11 end loop;
12 close emp_cursor;
13 end;
14 /
第1个雇员:CLARK
第2个雇员:KING
第3个雇员:MILLER
PL/SQL procedure successfully completed
--------------------------------------------------------游标变量的应用 游标变量类型有返回值
SQL> declare
2 type emp_record_type is record(
3 name varchar2(10),salary number(6,2));
4 type emp_cursor_type is ref cursor return emp_record_type; -- 有返回值的游标变量类型 那么select语句的返回结果必须与return的结果类型想匹配。
5 emp_cursor emp_cursor_type;
6 emp_record emp_record_type;
7 begin
8 open emp_cursor for select ename,sal from emp where deptno = 20;
9 loop
10 fetch emp_cursor into emp_record;
11 exit when emp_cursor%notfound;
12 dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.name);
13 end loop;
14 close emp_cursor;
15 end;
16 /
第1个雇员:SMITH
第2个雇员:JONES
第3个雇员:SCOTT
第4个雇员:ADAMS
第5个雇员:FORD
PL/SQL procedure successfully completed
-------------------------------------------------------------
==========================================包定义
create or replace package demo_pack is
deptrec dept%rowtype;
function add_dept(
dept_no number,dept_name varchar2,location varchar2)
return number;
function remove_dept(dept_no number)
return number;
procedure query_dept(dept_no in number);
end demo_pack;
============================================= 包主体 实行function和procedure
create or replace package body demo_pack is
function add_dept(
dept_no number,dept_name varchar2,location varchar2)
return number
is
empno_remaining exception; -----自定义一个异常
pragma exception_init(empno_remaining,-1);
begin
insert into dept values(dept_no,dept_name,location);
if sql%found then
return 1;
end if;
exception
when empno_remaining then
return 0;
when others then
return -1;
end add_dept;
function remove_dept(dept_no number)
return number
is
begin
delete from dept where deptno = dept_no;
if sql%found then
return 1;
else
return 0;
end if;
exception
when others then
return -1;
end remove_dept;
procedure query_dept(dept_no in number)
is
begin
select * into deptrec from dept where deptno = dept_no;
exception
when no_data_found then
dbms_output.put_line('部门:'||dept_no||'不存在');
when too_many_rows then
dbms_output.put_line('程序运行错误,请使用游标');
when others then
dbms_output.put_line(sqlcode||'---'||sqlerrm);
end query_dept;
end demo_pack;
======================================================命令窗口操作包及里面的function和procedure
SQL> declare
2 var number;
3 begin
4 var := demo_pack.add_dept(90,'administration','beijing');
5 if var = -1 then
6 dbms_output.put_line(sqlcode||'---'||sqlerrm);
7 elsif var = 0 then
8 dbms_output.put_line('该部门记录已经存在');
9 else
10 dbms_output.put_line('添加记录成功');
11 demo_pack.query_dept(90);
12 dbms_output.put_line(demo_pack.deptrec.deptno||'--'||demo_pack.deptrec.dname||'--'||demo_pack.deptrec.loc);
13 var := demo_pack.remove_dept(90);
14 if var = -1 then
15 dbms_output.put_line(sqlcode||'---'||sqlerrm);
16 elsif var = 0 then
17 dbms_output.put_line('该部门记录不存在');
18 else
19 dbms_output.put_line('删除记录成功');
20 end if;
21 end if;
22 end;
23 /
添加记录成功
90--administration--beijing
删除记录成功
PL/SQL procedure successfully completed
create or replace procedure myprocedure(id in number) --参数的数据类型不跟字符类型的大小
is ---is == as
name varchar2(10); ---过程里面声明的字符类型后面必须跟上字符类型的大小。
begin
select ename into name from emp where empno = id;
dbms_output.put_line(name);
end myprocedure;
execute myprocedure(7369); -----命令控制台执行过程
create or replace procedure myproc2(id in number,name out varchar2) is
begin
select ename into name from emp where empno = id;
dbms_output.put_line(name);
end myproc2;
SQL> declare -----命令控制台执行过程
2 tid number;
3 tname varchar2(10);
4 begin
5 tid := 7369;
6 myproc2(7369,tname);
7 end;
8 /
SMITH
PL/SQL procedure successfully completed
------------------------------------------------- 定义函数 function
create or replace function get_salary(dept_no in number,emp_count out number)
return number is
V_sum number;
begin
select sum(sal),count(*) into V_sum,emp_count from emp where deptno=dept_no;
return V_sum;
exception
when no_data_found then
dbms_output.put_line('你需要的数据不存在');
when others then
dbms_output.put_line(sqlcode||'---'||sqlerrm);
end get_salary;
SQL> declare -----命令控制台执行定义的函数
2 v_num number;
3 v_sum number;
4 begin
5 v_sum := get_salary(10,v_num); ---可以这样传递参数:v_sum := get_salary(dept_no => 10,emp_count => v_num);
6 dbms_output.put_line('10号部门工资总和:'||v_sum||',people:'||v_num);
7 end;
8 /
10号部门工资总和:8750,people:3
PL/SQL procedure successfully completed
------------------------------------------------游标
游标是一个指向上下文的句柄(handle)或指针。
对于不同的SQL语句,游标的使用情况不同
SQL语句 游标
非查询语句 隐式游标
结果是单行的查询语句 隐式游标或显示游标
结果是多行的查询语句 显示游标
游标的声明部分是唯一可以出现在模块声明部分中的步骤
在声明部分的末尾声明游标
SQL> declare
2 v_ename emp.ename%type;
3 v_sal emp.sal%type;
4 cursor c_cursor is select ename,sal from emp where rownum < 8; ----定义一个游标
5 begin
6 open c_cursor; ---打开游标
7 fetch c_cursor into v_ename,v_sal; -----提前游标工作区域中的数据集合
8 while c_cursor %found loop
9 dbms_output.put_line(v_ename||'----'||to_char(v_sal));
10 fetch c_cursor into v_ename,v_sal;
11 end loop;
12 close c_cursor; ----关闭游标
13 end;
14 /
SMITH----800
ALLEN----1600
WARD----1250
JONES----2975
MARTIN----1250
BLAKE----2850
CLARK----2450
PL/SQL procedure successfully completed
==============
显示游标属性 描述
%found 布尔型属性,当最近一次读记录时成功返回,则值为true;
%notfound 布尔型属性,与%found相反
%isopen 布尔型属性,当游标已打开时返回true
%rowcount 数字型属性,返回已从游标中读取的记录数
===================
==============
隐式游标属性 描述
%found 布尔型属性,当最近一次读记录时成功返回,则值为true;
%notfound 布尔型属性,与%found相反
%isopen 布尔型属性,取值总是false,sql命令执行完毕立即关闭隐式游标。
%rowcount 数字型属性,返回已从游标中读取的记录数
===================
----------------------------处理隐式游标
SQL> declare
2 v_deptno emp.deptno%type := &p_deptno;
3 begin
4 delete from emp where deptno = v_deptno;
5 if sql%notfound then
6 delete from dept where deptno=20;
7 end if;
8 end;
9 /
PL/SQL procedure successfully completed -----不要忘记commit
-----------------------------------------------------游标检索循环
SQL> declare
2 v_empno emp.empno%type;
3 v_sal emp.sal%type;
4 cursor c_cursor is select empno,sal from emp;
5 begin
6 open c_cursor;
7 loop
8 fetch c_cursor into v_empno,v_sal;
9 exit when c_cursor %notfound;
10 if v_sal <= 1000 then
11 update emp set sal = sal +50 where empno = v_empno;
12 dbms_output.put_line('编码为'||v_empno||'工资已更新');
13 end if;
14 dbms_output.put_line('记录数为'||c_cursor %rowcount);
15 end loop;
16 close c_cursor;
17 end;
18 /
编码为7369工资已更新
记录数为1
记录数为2
记录数为3
记录数为4
记录数为5
记录数为6
记录数为7
记录数为8
记录数为9
记录数为10
记录数为11
编码为7900工资已更新
记录数为12
记录数为13
记录数为14
PL/SQL procedure successfully completed
--------------------------------------------------------------游标的for循环
SQL> declare
2 cursor c_sal is select empno,ename,sal from emp;
3 begin
--隐含打开游标
4 for v_sal in c_sal loop
--隐含执行一个fetch语句
5 dbms_output.put_line(to_char(v_sal.empno)||'---'||v_sal.ename||'---'||to_char(v_sal.sal));
--隐含监测c_sal%notfound
6 end loop;
--隐含关门游标
7 end;
8 /
7369---SMITH---850
7499---ALLEN---1600
7521---WARD---1250
7566---JONES---2975
7654---MARTIN---1250
7698---BLAKE---2850
7782---CLARK---2450
7788---SCOTT---3000
7839---KING---5000
7844---TURNER---1500
7876---ADAMS---1100
7900---JAMES---1000
7902---FORD---3000
7934---MILLER---1300
PL/SQL procedure successfully completed
---------------------------------------------------------带参数的游标的for循环
SQL> declare
2 cursor c_cursor(dept_no number default 10)is
3 select dname,loc from dept where deptno <= dept_no;
4 begin
5 dbms_output.put_line('dept_no 参数值为30:');
6 for c1_rec in c_cursor(30) loop
7 dbms_output.put_line(c1_rec.dname||'---'||c1_rec.loc);
8 end loop;
9 dbms_output.put_line(chr(10)||'dept_no 参数值为10:');
10 for c1_rec in c_cursor(10) loop
11 dbms_output.put_line(c1_rec.dname||'---'||c1_rec.loc);
12 end loop;
13 end;
14 /
dept_no 参数值为30:
ACCOUNTING---NEW YORK
RESEARCH---DALLAS
SALES---CHICAGO
dept_no 参数值为10:
ACCOUNTING---NEW YORK
PL/SQL procedure successfully completed
-------------------------------------------------------for update 游标锁定
SQL> declare
2 v_deptno emp.deptno%type :=&p_deptno;
3 cursor emp_cursor is
4 select empno,sal from emp where deptno = v_deptno FOR UPDATE NOWAIT; --当加上NOWAIT子句时,
--如果这些行真的被另一个会话锁定,
--则open立即返回并给出错误提示:
--ORA-0054:resource busy and acquire with nowait specified
5 begin
6 for emp_rec in emp_cursor loop
7 if emp_rec.sal < 1500 then
8 update emp set sal=1500 where current of emp_cursor;
9 end if;
10 end loop;
11 end;
12 /
PL/SQL procedure successfully completed
--------------------------------------------------------游标变量的应用 游标变量类型无返回值
SQL> declare
2 type emp_cursor_type is ref cursor; ---定义游标变量类型的名称
3 emp_cursor emp_cursor_type; ---声明一个变量为游标变量类型(无返回值)
4 emp_record emp%rowtype; ---定义一个与表字段 字段类型相同的一个记录
5 begin
6 open emp_cursor for select * from emp where deptno = 10; ---打开游标变量 open ... for
7 loop
8 fetch emp_cursor into emp_record;
9 exit when emp_cursor%notfound;
10 dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.ename);
11 end loop;
12 close emp_cursor;
13 end;
14 /
第1个雇员:CLARK
第2个雇员:KING
第3个雇员:MILLER
PL/SQL procedure successfully completed
--------------------------------------------------------游标变量的应用 游标变量类型有返回值
SQL> declare
2 type emp_record_type is record(
3 name varchar2(10),salary number(6,2));
4 type emp_cursor_type is ref cursor return emp_record_type; -- 有返回值的游标变量类型 那么select语句的返回结果必须与return的结果类型想匹配。
5 emp_cursor emp_cursor_type;
6 emp_record emp_record_type;
7 begin
8 open emp_cursor for select ename,sal from emp where deptno = 20;
9 loop
10 fetch emp_cursor into emp_record;
11 exit when emp_cursor%notfound;
12 dbms_output.put_line('第'||emp_cursor%rowcount||'个雇员:'||emp_record.name);
13 end loop;
14 close emp_cursor;
15 end;
16 /
第1个雇员:SMITH
第2个雇员:JONES
第3个雇员:SCOTT
第4个雇员:ADAMS
第5个雇员:FORD
PL/SQL procedure successfully completed
-------------------------------------------------------------
==========================================包定义
create or replace package demo_pack is
deptrec dept%rowtype;
function add_dept(
dept_no number,dept_name varchar2,location varchar2)
return number;
function remove_dept(dept_no number)
return number;
procedure query_dept(dept_no in number);
end demo_pack;
============================================= 包主体 实行function和procedure
create or replace package body demo_pack is
function add_dept(
dept_no number,dept_name varchar2,location varchar2)
return number
is
empno_remaining exception; -----自定义一个异常
pragma exception_init(empno_remaining,-1);
begin
insert into dept values(dept_no,dept_name,location);
if sql%found then
return 1;
end if;
exception
when empno_remaining then
return 0;
when others then
return -1;
end add_dept;
function remove_dept(dept_no number)
return number
is
begin
delete from dept where deptno = dept_no;
if sql%found then
return 1;
else
return 0;
end if;
exception
when others then
return -1;
end remove_dept;
procedure query_dept(dept_no in number)
is
begin
select * into deptrec from dept where deptno = dept_no;
exception
when no_data_found then
dbms_output.put_line('部门:'||dept_no||'不存在');
when too_many_rows then
dbms_output.put_line('程序运行错误,请使用游标');
when others then
dbms_output.put_line(sqlcode||'---'||sqlerrm);
end query_dept;
end demo_pack;
======================================================命令窗口操作包及里面的function和procedure
SQL> declare
2 var number;
3 begin
4 var := demo_pack.add_dept(90,'administration','beijing');
5 if var = -1 then
6 dbms_output.put_line(sqlcode||'---'||sqlerrm);
7 elsif var = 0 then
8 dbms_output.put_line('该部门记录已经存在');
9 else
10 dbms_output.put_line('添加记录成功');
11 demo_pack.query_dept(90);
12 dbms_output.put_line(demo_pack.deptrec.deptno||'--'||demo_pack.deptrec.dname||'--'||demo_pack.deptrec.loc);
13 var := demo_pack.remove_dept(90);
14 if var = -1 then
15 dbms_output.put_line(sqlcode||'---'||sqlerrm);
16 elsif var = 0 then
17 dbms_output.put_line('该部门记录不存在');
18 else
19 dbms_output.put_line('删除记录成功');
20 end if;
21 end if;
22 end;
23 /
添加记录成功
90--administration--beijing
删除记录成功
PL/SQL procedure successfully completed
发表评论
-
简历11111111111
2013-03-12 22:19 677简历的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 -
oracle集合操作函数
2010-09-13 10:34 1071集合操作符专门用于合并多条select 语句的结果,包括:UN ... -
摘录--DBMS_SCHEDULER
2010-08-11 16:24 1846Oracle 10g新增了scheduler的功能,功能比jo ... -
oracle的case语句实例
2010-08-09 13:12 943SELECT SUM( CASE ... -
摘录:简单测试job的创建过程案例
2010-08-04 18:37 1161一:简单测试job的创建 ... -
摘录-详解 Oracle job 的使用与管理技巧
2010-08-04 18:35 1146详解 Oracle job 的使用与管理技巧 SVRMGR&g ... -
摘录--关于MV刷新的问题
2010-08-04 10:56 1810关于MV刷新的问题 最近在工作中遇到一个问题,是关 ... -
转:基于远程数据库表,建立本地数据库的物化视图
2010-05-03 14:49 2037基于远程数据库表,建立本地数据库的物化视图2008年12月28 ... -
如何用SQL返回两个日期之间的所有连续日期
2010-04-06 22:28 8989如何用SQL返回两个日期之间的所有连续日期 -------- ... -
qlsql 学习实例代码4
2010-04-03 19:57 1114---------------------------行触发器 ... -
qlsql 学习实例代码3
2010-03-31 22:26 1113------------------------------- ... -
qlsql 学习实例代码1
2010-03-30 23:11 1208准备工作: create table DEPT ( DEP ... -
PL SQL 学习笔记
2010-03-30 15:47 839PL SQL 学习笔记 见附件 作者:丁俊 PLSDE ... -
oracle pl/sql实例练习
2010-03-30 12:11 1043第一部分:oracle pl/sql实例练习(1) 一、使用s ...
相关推荐
本资料包“plsql语法编程实例”提供了一系列SQL基础语法和PL/SQL编程实例,对于学习和掌握这一技能非常有帮助。 首先,SQL(Structured Query Language)是关系型数据库管理系统中用于管理和处理数据的标准语言。其...
总的来说,"PLSQL_code"压缩包中的内容可能是对PLSQL编程语言和Oracle 11g数据库管理系统的实战教程和实例代码,对于想深入了解和提升这方面技能的学习者来说,是非常宝贵的资源。通过深入学习和实践,你可以成为一...
《Oracle PLSQL实例精解(英文原书第4版)》是Oracle数据库开发领域的一本经典著作,专注于讲解PL/SQL编程语言的应用。PL/SQL是Oracle数据库系统中用于处理结构化查询语言(SQL)的编程环境,它扩展了SQL的功能,使...
本“PLSQL学习笔记”将逐步讲解这些概念,通过实例和练习帮助读者巩固理解,进一步提升在Oracle数据库开发中的技能。无论你是初学者还是有经验的开发者,这份笔记都能提供有价值的参考。通过深入学习和实践,你将...
例如,实例2和实例3展示了如何定义一个简单的PLSQL块,包括变量声明、查询和异常处理。 2. **变量声明**: 变量在PLSQL中使用`DECLARE`关键字进行声明,如`v_ename VARCHAR2(5)`和`v_sal emp.sal%TYPE`。`emp.sal%...
### ORACLE PL/SQL 实例精解(第4版)知识点概述 #### 一、PL/SQL基础 **1.1 PL/SQL简介** - **定义**:PL/SQL(Procedural Language for SQL)是一种过程化语言,专门用于增强Oracle数据库的功能。它将SQL命令与...
本PLSQL学习基础课件PPT旨在为初学者提供深入浅出的教程,帮助他们掌握这一强大的数据库编程工具。 首先,我们要了解PLSQL的基本结构,它由声明部分、执行部分和异常处理部分组成。声明部分包括变量、常量、游标、...
59. **`DISCOUNT_CODE CHAR(2)`**: 折扣代码,长度为2个字符。 60. **`CHILD_PUBLISHED_FBC CHAR(15)`**: 儿童已发布FBC,长度为15个字符。 61. **`INFANT_PUBLISHED_FBC CHAR(15)`**: 婴儿已发布FBC,长度为15个...
Oracle PL/SQL是一种强大...通过学习和实践这些基本概念,你可以构建复杂的PL/SQL程序来管理Oracle数据库中的数据,进行数据处理和业务逻辑实现。了解并熟练掌握这些知识点对于任何Oracle数据库开发者来说都至关重要。
10. **PLSql调试和错误处理**:学习如何使用Oracle的调试工具,以及如何编写健壮的错误处理代码,能帮助你快速定位和解决问题。 11. **数据库链接**:数据库链接允许你在不同的Oracle实例之间进行通信,这对于...
通过深入研究这个指南中的代码实例,你可以深化对PL/SQL的理解,提升解决实际问题的能力。同时,理解数据库的内部工作原理,如何有效地与SQL交互,以及如何利用PL/SQL提供的高级功能,都是成为一个真正Oracle PL/SQL...
学习保存程序的最佳实践,确保代码安全,便于后期修改和复用。 ##### 3.3 修改程序 熟悉编辑功能,如查找替换、代码折叠等,提高代码编辑效率。 ##### 3.4 编译程序 理解编译过程,识别并解决语法错误,确保代码...
2. **异常处理**:学习如何用EXCEPTION块来捕获和处理运行时错误,增强程序的健壮性。 3. **游标**:掌握游标的使用,包括声明、打开、关闭和提取记录,以及游标变量和FOR循环中的游标应用。 4. **存储过程和函数*...
在PLSQL的学习过程中,"源码"可能是指编写和执行的存储过程、函数、触发器等代码片段,而"工具"可能指的是PLSQL Developer这样的集成开发环境,它为编写、调试和管理PLSQL代码提供了便利。 在压缩包中的两个文件名...
在PLSQL中,可以声明各种内置数据类型,如NUMBER、VARCHAR2、DATE等。变量可以用来存储数据,而常量则是不可改变的值。此外,还可以定义记录类型和数组,以适应更复杂的数据结构需求。 三、控制流语句 PLSQL支持...
本文将深入探讨"PLSQL学习基础资料"中的关键知识点,旨在为初学者提供一个全面的入门指南。 首先,让我们从"Oracle-SQL语言基础"开始。SQL(Structured Query Language)是用于查询、更新和管理关系数据库的标准...
《Oracle PLSQL实例精解(原书第4版)》是一本深入探讨Oracle数据库编程语言PL/SQL的专业书籍。此书旨在帮助读者掌握PL/SQL的精髓,通过丰富的实例和详细解析,提升在Oracle数据库环境中的开发能力。作者在书中不仅...
这个“PLSQL电子书小合集”显然是一个包含了关于PLSQL学习资料的压缩包,可能包括教程、指南、实战案例等内容,对于想要深入理解和掌握PLSQL的用户来说非常有价值。 PLSQL的主要组成部分包括声明部分、执行部分和...
2. **PLSQL Developer功能** - **代码编辑**:提供语法高亮、自动完成、代码折叠等特性,提升编码效率。 - **调试工具**:内置调试器支持断点、单步执行、查看变量值等功能,便于调试和定位问题。 - **数据库连接...