随笔分类 - oracle 数据库
oracle 数据库
摘要:--查询存储过程
--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
阅读全文
摘要:2010年5月14日星期五
Oracle数据的备份与还原
资料引用:http://www.knowsky.com/384957.html
数据的备份
1 将数据库orcl完全导出,用户名scott 密码tiger 导出到D:\daochu.dmp中
exp scott/tiger@orcl file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp scott/tiger@orcl file=d:\daochu.dmp owner=(scott)
3 将数据库中的表inner_notify、notify_staff_relat导出
Exp scott/tiger@orcl file= d:\daochu.dmp tables=(inner_notify,notify_staff_relat)
数据的导入
1.imp scott/tiger@orcl file=d:\daochu.dmp full=y
imp scott/tiger@orcl full=y file= d:\daochu.
阅读全文
摘要:2010年5月13日星期四
赋权限给oralce新建的用户
grant connect to XX;
grant exp_full_database to XX;
grant imp_full_database to XX;
grant resource to XX;
grant create procedure to XX;
grant create trigger to XX;
grant execute any procedure to XX;
grant grant any privilege to XX;
grant restricted session to XX;
grant select any table to XX;
grant unlimited tablespace to XX;
grant create any view to XX;
阅读全文
摘要:用代码来实现oracle自动增加1功能
创建序列:-- Create sequence
create sequence IP_Test_SEQUENCES
minvalue 1
maxvalue 99999999999999999999999999
start with 1
increment by 1
cache 20
order;
创建触发器:
create or replace trigger IP_Test_Trigger
before insert on ip_test
for each row
declare
-- local variables here
next_id number;
begin
select IP_Test_Sequences.nextval into next_id from dual;
:new.id:=next_id;
--select IP_Test_Sequences.nextval into :new.id from dual;
end IP_Test_Trigger;
阅读全文
摘要:oracle11g客户端-配置
首先配置:Net Configuration Assistant
一般在应用中配置监听程序配置和本地Net服务名配置:
再次配置:Net Manager
说是配置,打开它以后,就可以看到上面配置的net服务名,在这里可以进行测试。
阅读全文
摘要:怎么使程序与服务器上的oracle11g进行通信呢。我们不能不再提SQLServer2000是如何与服务器上的数据库进行通信的呢。当用ASP.net进行程序开发时,我们在Webconfig中配置连接服务器上的SQLServer 连接字符串这样,就可以连接服务器上的数据库了。而在oracle11g中要安装oracle11g客户端软件,在客户端进行连接配置,这样才能与服务器通信。
从网上下载oracle11g客户端,安装后弹出下列选择框,当要在客户端开发连接oracle11g数据库的程序。应该选择下面的运行时,看它的提示:安装用于开发应用程序,网络服务等。
阅读全文
摘要:Oracle11g中,设置主键为自增1形式-创建Trigger
阅读全文
摘要:Oracle11g中,设置主键为自增1形式-创建序列
阅读全文
摘要:Oracle11g创建数据库
如何在是11g中创建数据库,这对于初学者是很重要的。当我们初学oracle11g时,安装后,机器中运行的是oracle11g默认安装的orcl数据库。这个数据库可以当作我们学习oracle数据库时的练习数据库。但在实际项目中,我们应该建立自己的数据库。
在oracle11g新建数据库,按如下步骤:配置和移植工具->Administration Assistant for windows.然后按照下面的提示一步一步做下去,可以使用默认的配置,也可以自定义配置。
当新建立完数据库,会在最后一地,加一个DataBase Control-xx,后面是你新建立的一个数据库名。
对orcle11g数据库深一步理解:我想这个应该是和Microsoft SQLServer 类似的吧。但也有所不同。一样的是,他们都以某种形式,以Windows的一种服务来存在;不同的是,SQLServer,各种数据库都以一个Windows服务来存在,而在oracle11g中每一个数据库在Windows 服务中都以数据库形式服务存在。
阅读全文
摘要:sqlplus登陆短消息oracle数据库时提示“ORA-28000: 帐号被锁定”。
转贴:http://blog.csdn.net/shongyu/archive/2009/06/01/4233260.aspx
确定是由于oracle11g中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。
按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';
3、将尝试登录失败次数由默认的10次修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMP
阅读全文
摘要:大约有一个月的时间没有关注数据,再次看oralce 11g 时,发现数据库罢工了。Enterprise Manager 无法连接到数据库实例。这是怎么回事呢。在网上找了一些博客写的方法,但是我的就是不太好使,都已经研究了三天了。呵。实在是没有办法呀。
Oracle 11 g 安装默认的访问数据库的方法,是采用web方法。每一个数据库当作一个实例。每个实例访问时对应不同的端口。
而这种网页形式的方式,和以前的方式有较大的改进,也算是一种进步吧。但是也体现出来一些问题。就是不稳定,较有一些改动。Web访问就受到了影响。因此我觉得采用客户端的形式访问起来也挺方便的。现在我的数据库出现了无法连接到数据库实例,web访问是不行了,也只能采用另外的方法了。听朋友说pl/sql developer 挺好用的,他们现在就用的这个,而且用了一段时间了。说了这么多,也只能放弃web了。装上pl/sql developer 来体验下吧。别外oracle sql developer.
阅读全文
摘要:Oracle 11g密码过期
在google里一搜一大把。但大多都是一个版本。在这里我也转贴一下。
转贴:http://blog.csdn.net/shongyu/archive/2009/06/01/4233260.aspx
按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
SQL> conn sys as sysdba;
SQL> select username,a
阅读全文