玩转Oracle(7)
||------- pl/sql 基础 -------||
pl/procedural language 过程语言
//创建表
SQL> create table mytest(
2 name varchar2(30),
3 pwd varchar2(30));
//创建过程
create procedure sp_pro1 is
create or replace procedure sp_pro1 is --如果存在即替换
begin
--执行部分
insert into mytest values('valen','123');
--结束部分
end;
SQL> create or replace procedure sp_pro2 is
2 begin
3 --执行部分
4 delete from mytest where name='valen';
5 --结束部分
6 end;
7 /
//查看过程的错误信息
show error;
//如何调用存储过程
1.exec 过程名(参数值1,参数值2);
2.call 过程名(参数值1,参数值2);
//pl/sql编程规范
1.单行注释 --
2.多行注释/*...*/
3.定义变量,v_作为前缀
4.定义常量,c_作为前缀
5.定义游标,_cursor作为后缀
6.定义例外,e_作为前缀
//块结构事宜图
declear
/* 定义部分--常量,变量,游标,例外,复杂数据类型 */
begin
/* 执行部分--pl/sql,sql语句 */
exception
/* 例外处理部分--处理运行的各种错误 */
end;
//实例1
set serveroutput on --打开输出选项
begin
dbms_output.put_line('hello'); --put_line是dbms_output包中的一个过程
end;
//实例2
declare
v_ename varchar2(5); --定义字符串变量
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
end;
//实例3 no_data_found
declare
v_ename varchar2(5); --定义字符串变量
begin
select ename into v_ename from emp where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
--异常处理
exception
when no_data_found then
dbms_output.put_line('该编号不存在,请重新输入');
end;
//实例4
1.可以输入雇员名,新工资,可修改雇员的工资
create procedure sp_pro3(spName varchar2,newSal number) is
begin
--执行部分,根据用户名修改工资
update emp set sal=newSal where ename=spName;
end;
2.调用过程
exec sp_pro3('VALEN',3232.3);
3.如何在ja
相关文档:
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
1. trigger 是自动提交的,不用COMMIT,ROLLBACK
2. trigger最大为32K,如果有复杂的应用可以通过在TRIGGER里调用PROCEDURE或FUNCTION来实现。
3. 语法
CREATE OR REPLACE TRIGGER <trigger_name>
<BEFORE | AFTER> <ACTION>
ON <table_name>
DECLARE
<variable definitions> ......
对oracle已经学习三个多4,可以测试用一些复杂的组合; 5,它生成的测试用例是有迹可循日,即有规律的,不像手工测试那样会遗漏一些用例的组合。 3 选择OATS的基本原则一般都是先确定测试的因素、水平和交互作用,后选择适用的正交表。在确定因素的水平数时,主要因素应该多安排几个水平,次要因素可少安排几个水平。 (1重 ......
||------- 数据库管理 -------||
//显示初始化参数
show parameter;
//数据库表的逻辑备份与恢复
//导出
1.导出表
exp userid=scott/tiger@ORCL tables=(emp) file=d:\e1.dmp
2.导出其他方案的表,首先要确认自己是sysdba身份
exp userid=system@919959ORCL tables=(scott.emp) file=d:\e1.d ......
||------- 维护数据完整性 -------||
【约束】
//约束
not null //非空
unique //唯一 不能重复,但可以为空
primary key //主键
foreign key //外键
check //满足条件
//商店售货系统表设计案例(1)
//goods 商品表
goodsid ......