零基础学Oracle资源地址: 零基础学oracle(百度云盘资源)
优点:
declare
/**
定义部分:常量、变量、复杂数据类型、游标、异常
*/
begin
/**
执行部分:PL/SQL语句和SQL语句
*/
exception
/**
异常处理部分
*/
end;
/*块结束标记*/
例1:只包含执行部分的块
--set serveroutput on --注意,pl/sql不支持,可以在sqlplus中执行
begin
dbms_output.put_line('hello,pl/sql');
end;
例2:包含定义和执行部分的块
declare
v_date varchar2(20);
begin
select to_char(sysdate,'yyyy-mm-dd') into v_date from dual;
dbms_output.put_line('today is ' || v_date);
end;
例3:包含定义、执行部分和异常处理部分的块
declare
v_title varchar2(100);
begin
select title into v_title from book where id = 2;
dbms_output.put_line('title is ' || v_title);
exception when no_data_found then
dbms_output.put_line('书号错误');
end;
即只能存入单个值的变量。
v_name varchar2(100);
v_age number(3) := 18;
v_name customer.name%type;
1. Record
可存放表里的一条数据,类似javabean封装数据,使用type…is record定义。
例1:
declare
type book_type is record(
id number(10),
title varchar(100) );
book_record book_type;
begin select id,title into book_record from book where id=1; dbms_output.put_line(book_record.id || ':' || book_record.title);
end;
例2:
declare
book_record book%rowtype;
begin
select id,title into book_record from book where id=4;
dbms_output.put_line(book_record.id || ':' || book_record.title);
end;
2. 集合类型
例1:
declare
type book_table_type is table of book%rowtype index by binary_integer;
book_table book_table_type;
begin
select id,title into book_table(-1) from book where id=1;--注意这里不支持集合数据
dbms_output.put_line(book_table(-1).id || ':' || book_table(-1).title);
end;
例2:
declare
type book_table_type is table of book%rowtype index by binary_integer;
book_table book_table_type;
begin
select id,title bulk collect into book_table from book ;
dbms_output.put_line(book_table(1).id || ':' || book_table(1).title);--注意索引从1 开始
end;
3. 游标变量
(后面会给大家讲到)
1. 标识符
用于指定程序单元和程序项的名称,可以定义常量、变量、异常、游标等名称
强调两点:
2. 字面量
字面量是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,所谓右值是指等号右边的值
a) 数字字面量
b) 字符字面量
c) 字符串字面量
d) 布尔字面量 :true、false、null
e) 日期字面量
3. 注释
a) 单行注释
-- 注释内容
b) 多行注释
/* 注释内容 */
注:
(本博客资源源于网络资料整理与个人见解结合,如有雷同相似之处,请私信作者)