oralce 基础知识
oralce视图创建
定义:ORLACE 视图类似于oralce 只能查询的表,但是不能进行增删改等操作,使用方法上面和子查询类似吧。
创建方法:
create [ or replace ] [ force ] view [schema.]view_name
[ (column1,column2,...) ]
as
select ...
[ with check option ] [ constraint constraint_name ]
[ with read only ];
tips:
1 or replace: 如果存在同名的视图, 则使用新视图"替代"已有的视图
2 force: “强制"创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限
3 column1,column2,…:视图的列名, 列名的个数必须与select查询中列的个数相同; 如果select查询包含函数或表达式, 则必须为其定义列名.此时, 既可以用column1, column2指定列名, 也可以在select查询中指定列名.
4 with check option: 指定对视图执行的dml操作必须满足“视图子查询”的条件即,对通过视图进行的增删改操作进行"检查”,要求增删改操作的数据, 必须是select查询所能查询到的数据,否则不允许操作并返回错误提示. 默认情况下, 在增删改之前"并不会检查"这些行是否能被select查询检索到.
5 with read only:创建的视图只能用于查询数据, 而不能用于更改数据.
例子:
create or replace view view_approve_1
as
select * from test
with read only -- 只能查询的操作,如果不加则可以对表 进行操作
授予视图访问权限
创建视图,并将视图赋予一个用户只读权限,操作步骤如下:
OLDUSER用户具有创建视图的权限。
1)创建用户 zhangsan/zhangsan
CREATE USER zhangsan IDENTIFIED BY zhangsan;
2)给zhangsan赋予权限
GRANT CONNECT TO zhangsan;
GRANT SELECT ON OLDUSER.V_TEST TO zhangsan;
3)使用zhangsan用户登录系统,访问此视图
SELECT * FROM OLDUSER.V_TEST
4)如果不使用用户名访问,那么需要创建同义词,如下:
CREATE SYNONYM zhangsan.V_TEST for OLDUSER.V_TEST;
创建同义词之后,在zhangsan登录之后就可以使用如下查询语句了
SELECT * FROM V_TEST
oracle 存储过程创建
create or replace procedure 存储过程名称
(
--定义输入、输出参数--
参数名1 in 参数类型,
参数名2 in 参数类型,
参数名3 in 参数类型,
参数名4 out 参数类型
)
as
--定义变量--
--变量名 变量数据类型;如:
-- numCount integer;
begin
--处理方法-
end;