让你的应用程序不再对数据库的改动“感冒”(二)
来源:互联网 发布:linux 数值计算 编辑:程序博客网 时间:2024/05/04 13:40
原著作者:Jim Czuprynski
使用联接视图实现复杂的需求
使用一个联接的视图把前面的例子带到更高的层次:允许我们的应用访问多个表的信息。扩展前面的例子:
DROP VIEW hr.bv_employees;
CREATE OR REPLACE VIEW hr.bv_employees (
empid,
fname,
lname,
email,
hire_date,
job_id,
jobtitle,
deptname)
AS
SELECT
e.employee_id,
e.first_name,
e.last_name,
e.email,
e.hire_date,
e.job_id,
j.job_title,
d.department_name
FROM
hr.employees e,
hr.jobs j,
hr.departments d
WHERE e.job_id = j.job_id
AND e.department_id = d.department_id
/
DROP PUBLIC SYNONYM employees;
CREATE PUBLIC SYNONYM employees FOR bv_employees;
GRANT SELECT, INSERT, UPDATE, DELETE on hr.bv_employees TO oltprole;
记住,当你创建了一个复杂的视图后,ORACLE禁止发出的每句SQL语句中针对基本表的DML操作,哪怕仅针对一个。另外,INSERT语句可以应用在视图中的主键保持表(KEY PRESERVED TABLE)。主键保持表就是它的主键或唯一健在视图返回的结果集中也是唯一的。在本例中,就是Employees表。ALL_UPDATABLE_COLUMNS数据字典显示了哪些是可以被更新的。
SQL> SELECT
2 column_name,
3 updatable,
4 insertable,
5 deletable
6 FROM all_updatable_columns
7 WHERE owner = 'HR' AND table_name = 'BV_EMPLOYEES';
COLUMN_NAME UPD INS DEL
------------------------------ --- --- ---
EMPID YES YES YES
FNAME YES YES YES
LNAME YES YES YES
EMAIL YES YES YES
HIRE_DATE YES YES YES
JOB_ID YES YES YES
JOBTITLE NO NO NO
DEPTNAME NO NO NO
使用程序包实现功能的包装化和数据存取的标准化
ORACLE程序包的最非凡的功能就是它们的把对数据存取的功能包装成一个数据库对象的能力。我们现在的开发组就是使用程序包的公共属性和方法(包括传统的set 和get这种面向对象的方法)来描述应用程序针对基本视图集的数据库接口需求。
- 让你的应用程序不再对的改动“感冒”(二)
- 让你的应用程序不再对数据库的改动“感冒”(二)
- 让你的应用程序不再对数据库的改动“感冒”(二)
- 让你的应用程序不再对的改动“感冒”(一)
- 让你的应用程序不再对的改动“感冒”(三)
- 让你的应用程序不再对数据库的改动“感冒”(一)
- 让你的应用程序不再对数据库的改动“感冒”(三)
- 如何让你的改动进入内核
- 让你的Toast不再单调
- 如何让你的GridView不再滚动
- Android对Linux内核的改动你知道多少
- 【整理】Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- Android对Linux内核的改动你知道多少?
- [HOWTO]ORACLE中如何实现ASC字符串和16进制串互相转换
- Web Service开发中对象数据类型的交换
- ORACLE DATE和TIMESTAMP数据类型的比较(一)
- ORACLE DATE和TIMESTAMP数据类型的比较(二)
- 让你的应用程序不再对数据库的改动“感冒”(一)
- 让你的应用程序不再对数据库的改动“感冒”(二)
- 让你的应用程序不再对数据库的改动“感冒”(三)
- SQL Server的syslanguage表应用一例
- SQLPlus命令使用指南(一)
- SQL Server中全角和半角字符的比较问题
- SQLPlus命令使用指南(二)
- 如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本
- SQLPlus命令使用指南(三)
- ASE12.5数据库内嵌JAVA开发指南