玩转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 ......
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
一.引言
ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持,ORACLE为用户提供自己熟悉的数据库母语环境,诸如日期格式、数字格式和存储序列等。Oracle可以支持多种语言及字符集,其中oracl ......
create or replace trigger InsertEdcTerminal
after INSERT on edc_terminal
FOR EACH ROW
DECLARE
merchantId char(15);
terminalId char(8);
uservalue char(6) ;
updatedate char(8);
updatetime char(6);
v_cardtype Merchant_Card.Card_Type%TYPE;
v_cardstate merchant_card.card_stat%TYPE;
v_banktyp ......
||------- 维护数据完整性 -------||
【约束】
//约束
not null //非空
unique //唯一 不能重复,但可以为空
primary key //主键
foreign key //外键
check //满足条件
//商店售货系统表设计案例(1)
//goods 商品表
goodsid ......