玩转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
相关文档:
to_date()与24小时制表示法及mm分钟的显示:
一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd
HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。
如:select to_date('2005-01-01 13:14:20','yyyy-MM-d ......
||------- 数据库管理 -------||
//显示初始化参数
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 ......