06 2010 档案
摘要:--查询存储过程
--select * from user_source order by name;
clear;
select * from user_source where name = 'ADD_USER_INFORMATION';
--查询函数:
--var sname = upper('get_sal');
--select * from user_source where name = 'GET_SAL';
select * from user_source where upper(name)= upper('get_sal');
--查询包:
select * from user_source where upper(name)=upper('pack_test') and upper(type) = upper('package');
--删除存储过程:
drop procedure add_user_information; --
--删除函数:
drop function get_val;
--删除包:
drop pa
阅读全文
摘要:clear;
--创建函数:
create or replace function get_sal(name in varchar2)
return number
as
v_sal emp.sal%type;
begin
select sal into v_sal from emp where upper(ename)= upper(name);
return v_sal;
Exception
when no_data_found then
raise_application_error(-20000,'该雇员不存在.');
end;
/
var sal number;
exec :sal := get_sal('scott');
--print sal;
sal
---------
3000
阅读全文
摘要:http://topic.csdn.net/t/20041126/22/3592748.html
--参考资料:
--包
CREATE OR REPLACE PACKAGE PAG_CUR_TEST --创建一个包
AS
TYPE c_TYPE IS REF CURSOR;
PROCEDURE prc_selecttestip(p_CUR In OUT c_TYPE); --存储过程带参数
END PAG_CUR_TEST;
/
--存储过程
CREATE OR REPLACE PACKAGE BODY PAG_CUR_TEST --创建一个包,创建包体
AS
PROCEDURE prc_selecttestip(p_CUR In OUT c_TYPE)
AS
BEGIN
OPEN p_CUR FOR SELECT * FROM ip_test;
END
阅读全文
摘要:参考资料:http://reallyafei.javaeye.com/blog/391097
创建基本表
-- Create table
create table USER_INFORMATION
(
P_ID NUMBER,
USER_LOGIN_NAME NVARCHAR2(30)
)
创建包:
create or replace package pack_test is
type cur_test is ref cursor;
end pack_test;
/
--这个不能少呀,加上这个就可以在sql/plus中运行了,这个是结束符号
创建存储过程
create or replace procedure proc_cur(p_id in number,p_cur out pack_test.cur_test)
is
v_sql varchar2(400);
begin
if p_id = 0 then
op
阅读全文
摘要:--创建一个视图
create view v_ip_test as select * from ip_test order by id ;
--使用数据字典来查询数据库中所有的
select * from user_views
select * from user_views where view_name='v_ip_test' --此外应该为大写,否则会查询不出来。
select text from user_views where view_name='V_IP_TEST'
--视图可以执行dml操作
select * from user_updatable_columns;
--显示索引:
--从数据字典中查询所有的索引
select * from ind;
select index_name,uniqueness,status from ind where table_name='EMP';
--索引列的信息写入数据字典:
select * from user_ind_columns;
select column_name,column_
阅读全文
摘要:物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。
ON DEMAND和ON COMMIT物化视图的区别在于其刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。创建物化视图时未作指定,则Oracle按ON DEMAND模式来创建。
1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;
2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;
3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证。
--获取数据库rdbms版本信息
select
阅读全文