- 博客分类:
-- PL/SQL编程
-- SQL: Structed Query Language
-- PL: Procedure Language
--是对sql语言的补充
--为什么需要PL/SQL编程[在数据库服务端编程]
--减小网络开销
--提高性能
--提高了安全性
-- PL/SQL块 是基本单元
--允许输出
set serveroutput on;
declare
str varchar2(20) := 'Hello World';
begin
--输出语句
dbms_output.put_line(str);
end;
--修改7499的工资
begin
update empbak set sal=2000 where empno=7499;
end;
--------------------------------------------------------
/*
数据类型
标量类型
数字型 Binary_Integer Number PLS_Integer
字符型 Char varchar2 long raw long Raw
时间日期型: Date Timestamp
布尔型: Boolean
LOB类型
BFile
BLOB
CLOB
NCLOB
属性类型
%type
%rowtype
复合类型
自定义类型,类似于C语言中的结构体
----------------------------------------------------
操作符
:= 赋值操作符 相当于Java中的 =
|| 连接操作符 相当于Java中的 +
-- 单行注释
<<>> 标签分隔符
.. 范围操作符
** 求幂操作符
比较运算符
= 等于 相当于Java中的 ==
<> != 不等于
>
<
>=
<=
逻辑运算符
and 并且 相当于Java中的 &&
or 或者 相当于Java中的 ||
not 非 相当于Java中的 !
*/
--查询执行编号的员工的姓名
declare
v_ename varchar2(5);--声明一个变量用来接收查询的结果
begin
dbms_output.put_line('名字是:'||v_ename);
--处理异常
exception
when no_data_found then
dbms_output.put_line('没有这个编号的员工!');
end;
-----------------------------------------------
--属性类型
-- %type 参照字段类型
--根据编号查询员工的姓名和工资
declare
--变量的类型参照empbak表中ename字段的类型
v_ename empbak.ename%type;
v_sal empbak.sal%type;
begin
dbms_output.put_line('名字是:'||v_ename||' ,工资:'||v_sal);
--处理异常
exception
when no_data_found then
dbms_output.put_line('没有这个编号的员工!');
end;
影音先锋电影 http://www.iskdy .com/
---------------------------------------------------------------------
--复合类型
declare
--定义一个复合类型
type myrecord is record(
v_ename empbak.ename%type,
v_sal empbak.sal%type
);
--定义一个复合类型的变量
aa myrecord;
begin
------------------------------------------------------------------------
--根据员工编号查询员工的所有信息
--使用 %rowtype表示整行数据
declare
--%rowtype 表示变量是一个包含了empbak表所有字段的复合类型
aa empbak%rowtype;
begin
dbms_output.put_line('姓名:'||aa.ename||' 工资:'||aa.sal);
end;
---------------流程控制------------------------------------------
--分支
-- if
--根据编号查询员工工资,如果发现工资低于1500,就给涨工资200
-- 否则减少200
declare
v_sal empbak.sal%type;
v_no empbak.empno%type;
begin
-- SQL: Structed Query Language
-- PL: Procedure Language
--是对sql语言的补充
--为什么需要PL/SQL编程[在数据库服务端编程]
--减小网络开销
--提高性能
--提高了安全性
-- PL/SQL块 是基本单元
--允许输出
set serveroutput on;
伦理片 http://www.dotdy.com/
--案例1declare
str varchar2(20) := 'Hello World';
begin
--输出语句
dbms_output.put_line(str);
end;
--修改7499的工资
begin
update empbak set sal=2000 where empno=7499;
end;
--------------------------------------------------------
/*
数据类型
标量类型
数字型 Binary_Integer Number PLS_Integer
字符型 Char varchar2 long raw long Raw
时间日期型: Date Timestamp
布尔型: Boolean
LOB类型
BFile
BLOB
CLOB
NCLOB
属性类型
%type
%rowtype
复合类型
自定义类型,类似于C语言中的结构体
----------------------------------------------------
操作符
:= 赋值操作符 相当于Java中的 =
|| 连接操作符 相当于Java中的 +
-- 单行注释
<<>> 标签分隔符
.. 范围操作符
** 求幂操作符
比较运算符
= 等于 相当于Java中的 ==
<> != 不等于
>
<
>=
<=
逻辑运算符
and 并且 相当于Java中的 &&
or 或者 相当于Java中的 ||
not 非 相当于Java中的 !
*/
--查询执行编号的员工的姓名
declare
v_ename varchar2(5);--声明一个变量用来接收查询的结果
begin
dbms_output.put_line('名字是:'||v_ename);
--处理异常
exception
when no_data_found then
dbms_output.put_line('没有这个编号的员工!');
end;
-----------------------------------------------
--属性类型
-- %type 参照字段类型
--根据编号查询员工的姓名和工资
declare
--变量的类型参照empbak表中ename字段的类型
v_ename empbak.ename%type;
v_sal empbak.sal%type;
begin
dbms_output.put_line('名字是:'||v_ename||' ,工资:'||v_sal);
--处理异常
exception
when no_data_found then
dbms_output.put_line('没有这个编号的员工!');
end;
影音先锋电影 http://www.iskdy .com/
---------------------------------------------------------------------
--复合类型
declare
--定义一个复合类型
type myrecord is record(
v_ename empbak.ename%type,
v_sal empbak.sal%type
);
--定义一个复合类型的变量
aa myrecord;
begin
------------------------------------------------------------------------
--根据员工编号查询员工的所有信息
--使用 %rowtype表示整行数据
declare
--%rowtype 表示变量是一个包含了empbak表所有字段的复合类型
aa empbak%rowtype;
begin
dbms_output.put_line('姓名:'||aa.ename||' 工资:'||aa.sal);
end;
---------------流程控制------------------------------------------
--分支
-- if
--根据编号查询员工工资,如果发现工资低于1500,就给涨工资200
-- 否则减少200
declare
v_sal empbak.sal%type;
v_no empbak.empno%type;
begin